微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium – Phantomjs会话隔离仍然无效吗?

当我使用chrome浏览器运行我的selenium测试时,我的测试用例运行正常.使用phantomjs浏览器时,看起来浏览器会话在每个测试用例后都不会重置.在我的测试用例中,我以用户身份登录,然后导航到某些页面,然后注销.当测试用例发生故障时会出现问题.浏览器会话未重置,因此当下一个测试用例开始时,失败的测试无法注销.这会导致单个故障后的所有测试用例都失败.

在互联网上寻找这个问题的解决方案时,我们已经知道了2013年的情况.我似乎无法找到有关此问题的最新信息.有没有最新的解决方法

手动尝试在每个测试用例之前或之后删除cookie似乎不起作用. webDriver.manage()deleteallCookies();

我正在使用phantomjs ver 2.1.1.

解决方法

首先是 PhantomJS is dead,最好切换到 Headless ChromeHeadless Firefox.

其次PhantomJS是Webkit的一个端口,它是not thread safe.这意味着如果您尝试并行运行多个测试,您将看到线程问题,要解决此问题,您需要启动PhantomJS的多个实例并让每个GhostDriver实例连接到PhantomJS的另一个实例.

你看到的特殊问题是PhantomJS没有正确地清除它自己,唯一的解决方案是杀死你在测试完成后运行的初始PhantomJS实例然后启动一个干净的新实例,不幸的是,这不是由GhostDriver支持.

最后一个问题是GhostDriver也已经死了,当PhantomJS去世时,没有任何意义继续发展.

TLDR;请改用Chrome / Firefox无头模式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐