Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit a5b23a9

Browse files
committed
增加cookie
1 parent 2a11e6f commit a5b23a9

File tree

3 files changed

+60
-1
lines changed

3 files changed

+60
-1
lines changed

CHANGELOG

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# 1.0.2-20170325
22
* Selenium的依赖版本升级到3.0
33
* jre的依赖版本升级到1.8
4-
* 增加系统参数配置文件system.data.properties
4+
* 增加系统参数配置文件system.data.properties
5+
* 增加cookie的保存和加载

src/main/java/org/suren/autotest/web/framework/selenium/SeleniumEngine.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.io.FileOutputStream;
3030
import java.io.IOException;
3131
import java.io.InputStream;
32+
import java.io.ObjectInputStream;
33+
import java.io.ObjectOutputStream;
3234
import java.io.OutputStream;
3335
import java.io.UnsupportedEncodingException;
3436
import java.net.MalformedURLException;
@@ -40,15 +42,18 @@
4042
import java.util.Iterator;
4143
import java.util.Map;
4244
import java.util.Properties;
45+
import java.util.Set;
4346
import java.util.concurrent.TimeUnit;
4447
import java.util.zip.ZipEntry;
4548
import java.util.zip.ZipInputStream;
4649

50+
import org.openqa.selenium.Cookie;
4751
import org.openqa.selenium.Dimension;
4852
import org.openqa.selenium.JavascriptExecutor;
4953
import org.openqa.selenium.Proxy;
5054
import org.openqa.selenium.UnsupportedCommandException;
5155
import org.openqa.selenium.WebDriver;
56+
import org.openqa.selenium.WebDriver.Options;
5257
import org.openqa.selenium.WebDriver.Window;
5358
import org.openqa.selenium.chrome.ChromeDriver;
5459
import org.openqa.selenium.chrome.ChromeOptions;
@@ -195,6 +200,36 @@ else if(DRIVER_OPERA.equals(curDriverStr))
195200
}
196201
}
197202

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+
198233
if(maximize)
199234
{
200235
window.maximize();
@@ -651,6 +686,24 @@ public void close()
651686
{
652687
if(driver != null)
653688
{
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+
654707
driver.quit();
655708
}
656709
}

src/main/resources/engine.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,13 @@ android.platformVersion=4.3
3838
#android.appPackage=
3939
#android.appActivity=
4040

41+
##default invoker package
4142
invoker.package=org.suren.autotest.web.framework.invoker
4243

44+
cookie.save=false
45+
cookie.save.path=phoenix.autotest.cookie
46+
cookie.load=false
47+
4348
upload.file.random.name=suren.png
4449

4550
##data source stuff

0 commit comments

Comments
 (0)