我正在运行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助手是否有可能正在执行它?