Java PhantomJS和Selenium Webdriver-如何清除会话

Java PhantomJS和Selenium Webdriver-如何清除会话,java,testing,selenium,phantomjs,ghostdriver,Java,Testing,Selenium,Phantomjs,Ghostdriver,我正在使用SeleniumWebDriver(Java)和PhantomJS测试一个复杂的JS驱动的网站。我的问题是,PhantomJS浏览器在两个测试之间保持会话,这会导致测试设置中出现错误 如果我用Firefox运行测试,一切正常,因为Firefox对每个测试用例都使用干净的会话 我解决这个问题的第一次尝试是通过JS注入清除本地存储。cookie被API驱动程序删除。manage().deleteAllCookies() 但是不允许在不访问页面的情况下执行JavaScript。因此,在“ab

我正在使用SeleniumWebDriver(Java)和PhantomJS测试一个复杂的JS驱动的网站。我的问题是,PhantomJS浏览器在两个测试之间保持会话,这会导致测试设置中出现错误

如果我用Firefox运行测试,一切正常,因为Firefox对每个测试用例都使用干净的会话

我解决这个问题的第一次尝试是通过JS注入清除本地存储。cookie被API驱动程序删除。manage().deleteAllCookies()

但是不允许在不访问页面的情况下执行JavaScript。因此,在“about:blank”处启动浏览器会导致错误

那么,如何配置phantomjs webdriver来清除会话呢

我使用phantomjs和webdriver是因为selenium网格服务不够稳定。所以我启动我的phantomjs实例如下:

phantomjs --webdriver=1234

我知道如果您使用Selenium Grid,它有一个“cleanSession”选项。另外,我非常确定常规WebDriver类在本地WebDriver实例上有一个选项:

driver.manage().deleteAllCookies();

PhantomJS在测试之间保持会话的事实是GhostDriver中的一个问题,即PhantomJS中的Selenium Webdriver实现


我想这个问题会在PhantomJS2发行版中得到解决。GhostDriver 1.1.1中已经修复了该错误,但没有包含此GhostDriver版本的PhantomJS版本。

PhantomJS 2.0版修复了此问题。如果您有Linux环境,则需要克隆源代码并进行编译,如下所示:

git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 2.0
./build.sh

我刚才也有同样的问题!我正在使用selenium+phantomjs+wendriver.io+mocha。为每个测试启动一个新会话似乎是合乎逻辑的,这样它们就“干净”了……是的,我认为这是phantomjs中的某种bug或泄漏规范。因为当前url是在两个测试之间重置的。我也有两个使用两个不同url的测试。但是饼干显然是漏出来的,我收回这句话,它似乎工作得很好。这里有一个测试repo+tests:我已经提到我不想使用selenium网格。我们在生产中就有了它,从长远来看,它是不稳定的。我已经使用了deleteAllCookies代码——正如问题中提到的。如果您知道哪个选项以及如何打开它,请详细说明。如果您查看Selenium 2.40.0上的更改日志,它有一个PhantomJS更改。您是否使用了最新的2.41.0网格和ghostdriver?如果没有,可能值得再试一次。我想你没有使用Chrome或IE。。。。如上所述,我使用PhantomJS作为浏览器。我不使用Selenium网格。我只是使用常规的selenium及其webdriver api。(phantomjs--webdriver=PORT启动与webdriver兼容的phantomjs浏览器)。但问题是,会话是持久的,因此当我运行第二个测试用例时,我的webshop从不同的起点开始。2.40.0中的更改也可能会影响客户端PhantomJS。是否使用PhantomJS选项:phantom.cookiesEnabled=true?您应该可以使用JavascriptExecutor对象完全访问Cookie;你试过了吗?刚刚在pom.xml中检查了我的依赖关系。我用2.40。已启用点播Cookies。我可以通过JS休息饼干。但为此,我必须先加载页面。执行JS并再次加载页面。(如果我不这样做,我会得到DOM安全性异常)。那太糟糕了。