java PhantomJS和Selenium Webdriver如何清除会话
我正在使用SeleniumWebDriver(Java)和PhantomJS测试一个复杂的JS驱动的网站。我的问题是,PhantomJS浏览器在两个测试之间保持会话,这会导致测试设置中出现错误
如果我用Firefox运行测试,一切正常,因为Firefox对每个测试用例都使用干净的会话
我解决这个问题的第一次尝试是通过JS注入清除本地存储。Cookie被Selenium exposed API driver.manage().deleteAllCookies();
删除
但是不允许在不访问页面的情况下执行JavaScript。因此,在“about:blank”处启动浏览器会导致错误
那么,如何配置phantomjs webdriver来清除会话呢
我使用phantomjs和webdriver是因为selenium网格服务不够稳定。所以我启动我的phantomjs实例如下:
phantomjs --webdriver=1234
# 1 楼答案
PhantomJS的2.0版解决了这个问题。如果您有Linux环境,则需要克隆源代码并进行编译,如下所示:
More info here
# 2 楼答案
PhantomJS在测试之间保持会话是GhostDriver中的一个known problem事实,GhostDriver是PhantomJS中的Selenium Webdriver实现
我想这个问题会在PhantomJS2发行版中得到解决。这个错误已经在GhostDriver 1.1.1中修复,但是没有包含这个GhostDriver版本的PhantomJS版本
# 3 楼答案
我知道如果使用GhostDriver,Selenium Grid有一个“cleanSession”选项。另外,我非常确定常规WebDriver类在本地WebDriver实例上有一个选项: