保持浏览器窗口打开并重用-Codeception Selenium Chrome Debian



我正在运行Codeception测试。出于显示目的,我想在一个Chrome浏览器[或FF idc]上进行测试,并在测试运行之间保持浏览器打开。我知道有办法做到这一点[我做到了,但忘了怎么做了!]。

我正在跑步:Ubuntu 20谷歌铬86

目前,测试运行良好,GUI弹出,但在运行结束时关闭。

我认为这与参数";browserSession重用"或";重新启动";或";分离";但我不知道该把它放在哪里,尤其是在PHP中!

如何只使用一个浏览器并继续使用它,它是Codeception

yml:

class_name: AcceptanceTester
modules:
enabled:
- HelperAcceptance
- WebDriver
config:
WebDriver:
url: 'http://xx123xxx.com/'
port: 4444
browser: chrome

我如何推出Selenium:

java -Dwebdriver.chrome.driver=/var/www/html/wp-content/plugins/WPbdd/chromedriver -jar selenium.jar

很抱歉没有准确回答您的要求,但我认为没有办法做到这一点。

但我建议您使用codeception控制台来逐个运行验收测试指令,这样当您看到每个命令都在执行时,浏览器就会保持打开状态。

如果你使用Docker,我建议你看看这个链接,在容器中使用selenium和Chrome Drive,你可以通过NoVNC(浏览器中的远程桌面访问(访问界面:https://hub.docker.com/r/selenium/hub

如果您需要Docker的帮助,请随时联系我。

UPDATE:最初的问题是关于在测试之间重新启动,而不是在测试运行之间。

新答案:

Codeception WebDriver模块不能做到这一点,但您可以自己实现这样的功能。

您必须创建自己的模块,使其扩展WebDriver,覆盖_after_afterSuite方法以防止它们停止浏览器实例。然后在_afterSuite中实现将selenium会话id存储到文件中,并更新_initializeSession方法从文件中读取会话id并将其传递给RemoteWebDriver的构造函数,您还必须从RemoteWebDriver::create方法中复制一些核心。

原始答案:

这是默认行为
默认情况下,WebDriver模块对所有测试重复使用相同的浏览器会话,并且仅在测试之间删除cookie
通过设置restart:true参数,可以在测试之间重新启动浏览器。

另一种重新启动浏览器的方法是在助手中调用_restart方法,您的Acceptance助手是否有可能正在执行它?

相关内容

  • 没有找到相关文章