当前位置: 首页 > 知识库问答 >
问题:

PhantomJS和Selenium Webdriver-如何清除会话

上官自明
2023-03-14

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

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

我解决这个问题的第一个尝试是通过JS注入清除本地存储。Cookies被Selenium暴露的APIdriver.manage删除。

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

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

我正在使用phantomjs和webcher,因为硒网格服务不够稳定。所以我像这样开始我的phantomjs实例:

phantomjs --webdriver=1234

共有3个答案

鄢雅畅
2023-03-14

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

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

更多信息请点击这里

邓欣德
2023-03-14

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

driver.manage().deleteAllCookies();
申奇希
2023-03-14

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

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

 类似资料:
  • 问题内容: 在导入flask时,我们导入模块等。 是一种字典,可以使用会话进行访问。 现在,我尝试清除尝试构建网站时使用的所有垃圾变量。 关于stackoverflow的答案之一使用了类似清除会话内容的命令。但是,这样的命令会产生错误,表明不存在这样的命令。 谁能为我指出每次关闭服务器或关闭网站时如何清除和如何清除会话? 问题答案: 我将这样的会话与flask一起使用,它确实起作用。我虽然不使用,

  • 当Kubernetes pod进入状态时,您将修复底层问题。你怎么强迫它重新安排?

  • 我有一个名为Interval的setInterval,它运行一个倒计时计时器。我有一个开始按钮,第一次点击时播放,第二次暂停就好了。当我双击时,它会将计时器显示回零,但似乎并没有清除实际的计时器。将只播放在显示被0替换之前停止的地方。

  • 问题内容: 我在Swift 2中使用SFSafariViewController在具有ios 9.1(13B143)的iPad Air 2上显示网页。每个网页都需要用户提供凭据。但是,当用户按下注销按钮时,我需要清除这些凭据。我尝试使用以下方法: 但这不起作用。实际上,“ DELETING CREDENTIAL”和“ DELETING COOKIE”从未打印过。此外,我可以从iPad上完全删除该应

  • 问题内容: 我的 单元/集成测试 包括搜索功能的测试。 我的想法是在每次测试之前有一个空的搜索索引。因此,我正在尝试删除方法(它是Groovy代码)的索引中的所有元素: 似乎它正在异步处理所有删除操作,因此在它之后添加了它。如您所见,我尝试几次打开/关闭连接-在那里没有帮助。 这个问题有时需要更多时间,有时需要5秒钟以上才能删除,有时无法找到刚刚添加的数据(来自先前的测试),等等。而最令人烦恼的是

  • 问题内容: 我正在构建Codeigniter应用程序,并且正在尽最大努力防止SQL注入。我正在使用Active Record方法构造所有查询。我知道Active Record会自动清除输入内容,但是我想知道到底是什么程度?它只是转义所有引号,还是做更多呢?如何防止混淆的SQL注入或其他更高级的注入? 基本上,我正在寻找有关CI如何清理数据的深入说明。有人知道吗 问题答案: 完全像这样(对于MySQ