|
29 | 29 | import java.io.FileOutputStream; |
30 | 30 | import java.io.IOException; |
31 | 31 | import java.io.InputStream; |
| 32 | +import java.io.ObjectInputStream; |
| 33 | +import java.io.ObjectOutputStream; |
32 | 34 | import java.io.OutputStream; |
33 | 35 | import java.io.UnsupportedEncodingException; |
34 | 36 | import java.net.MalformedURLException; |
|
40 | 42 | import java.util.Iterator; |
41 | 43 | import java.util.Map; |
42 | 44 | import java.util.Properties; |
| 45 | +import java.util.Set; |
43 | 46 | import java.util.concurrent.TimeUnit; |
44 | 47 | import java.util.zip.ZipEntry; |
45 | 48 | import java.util.zip.ZipInputStream; |
46 | 49 |
|
| 50 | +import org.openqa.selenium.Cookie; |
47 | 51 | import org.openqa.selenium.Dimension; |
48 | 52 | import org.openqa.selenium.JavascriptExecutor; |
49 | 53 | import org.openqa.selenium.Proxy; |
50 | 54 | import org.openqa.selenium.UnsupportedCommandException; |
51 | 55 | import org.openqa.selenium.WebDriver; |
| 56 | +import org.openqa.selenium.WebDriver.Options; |
52 | 57 | import org.openqa.selenium.WebDriver.Window; |
53 | 58 | import org.openqa.selenium.chrome.ChromeDriver; |
54 | 59 | import org.openqa.selenium.chrome.ChromeOptions; |
@@ -195,6 +200,36 @@ else if(DRIVER_OPERA.equals(curDriverStr)) |
195 | 200 | } |
196 | 201 | } |
197 | 202 |
|
| 203 | + // 处理cookie |
| 204 | + Options manage = driver.manage(); |
| 205 | + boolean cookieLoad = Boolean.parseBoolean(enginePro.getProperty("cookie.load", "false")); |
| 206 | + File root = PathUtil.getRootDir(); |
| 207 | + File cookieFile = new File(root, enginePro.getProperty("cookie.save.path", "phoenix.autotest.cookie")); |
| 208 | + |
| 209 | + if(cookieLoad) |
| 210 | + { |
| 211 | + try(ObjectInputStream input = new ObjectInputStream(new FileInputStream(cookieFile))) |
| 212 | + { |
| 213 | + Object cookiesObj = input.readObject(); |
| 214 | + if(cookiesObj != null && cookiesObj instanceof Set<?>) |
| 215 | + { |
| 216 | + Set<Cookie> cookies = (Set<Cookie>) cookiesObj; |
| 217 | + for(Cookie cookie : cookies) |
| 218 | + { |
| 219 | + manage.addCookie(cookie); |
| 220 | + } |
| 221 | + } |
| 222 | + } |
| 223 | + catch (IOException e) |
| 224 | + { |
| 225 | + e.printStackTrace(); |
| 226 | + } |
| 227 | + catch (ClassNotFoundException e) |
| 228 | + { |
| 229 | + e.printStackTrace(); |
| 230 | + } |
| 231 | + } |
| 232 | + |
198 | 233 | if(maximize) |
199 | 234 | { |
200 | 235 | window.maximize(); |
@@ -651,6 +686,24 @@ public void close() |
651 | 686 | { |
652 | 687 | if(driver != null) |
653 | 688 | { |
| 689 | + Options manage = driver.manage(); |
| 690 | + boolean cookieSave = Boolean.parseBoolean(enginePro.getProperty("cookie.save", "false")); |
| 691 | + File root = PathUtil.getRootDir(); |
| 692 | + File cookieFile = new File(root, enginePro.getProperty("cookie.save.path", "phoenix.autotest.cookie")); |
| 693 | + |
| 694 | + if(cookieSave) |
| 695 | + { |
| 696 | + Set<Cookie> cookies = manage.getCookies(); |
| 697 | + try(ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(cookieFile))) |
| 698 | + { |
| 699 | + output.writeObject(cookies); |
| 700 | + } |
| 701 | + catch (IOException e) |
| 702 | + { |
| 703 | + e.printStackTrace(); |
| 704 | + } |
| 705 | + } |
| 706 | + |
654 | 707 | driver.quit(); |
655 | 708 | } |
656 | 709 | } |
|
0 commit comments