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

保持浏览器窗口打开并重用-Codeception Selenium Chrome Debian,selenium,selenium-webdriver,selenium-chromedriver,codeception,Selenium,Selenium Webdriver,Selenium Chromedriver,Codeception,我正在运行Codeception测试。出于显示目的,我希望在单个Chrome浏览器[或FF idc]上驱动测试,并在测试运行之间保持浏览器打开。我知道有办法做到这一点[我做到了,但忘了怎么做!] 我在跑步: Ubuntu 20 谷歌Chrome86 目前,测试运行正常,GUI弹出,但在运行结束时关闭 我认为它与参数“browserSessionReuse”或“restart”或“detach”有关,但我不知道该放在哪里,尤其是在PHP中 如何仅使用一个浏览器,并继续使用它,it Codecept

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

我在跑步: Ubuntu 20 谷歌Chrome86

目前,测试运行正常,GUI弹出,但在运行结束时关闭

我认为它与参数“browserSessionReuse”或“restart”或“detach”有关,但我不知道该放在哪里,尤其是在PHP中

如何仅使用一个浏览器,并继续使用它,it Codeception?

yml:

如何启动Selenium:

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

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

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

如果您使用Docker,我建议您查看此链接,以便在容器中使用selenium和Chrome Drive,您可以通过NoVNC(浏览器中的远程桌面访问)访问该界面:


如果您需要有关Docker运行的帮助,请随时与我联系。

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

新答案:

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

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

原始答复:

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


重新启动浏览器的另一种方法是调用帮助程序,您的验收帮助程序是否有可能正在执行它?

我的意思是在“测试运行”之间保持打开状态,而不是在“测试”之间保持打开状态。我更改了它。对于Selenium来说,要抓住一个已经打开的窗口是不容易的。我还没有找到在同一个浏览器中多次运行测试套件的方法。Selenium始终启动新会话。Codeception docs:restart-设置为false(默认值)可对所有测试使用相同的浏览器窗口,或设置为true可为每个测试创建新窗口。在任何情况下,当所有测试完成时,浏览器窗口关闭。有人用Python而不是PHP完成了测试。
java -Dwebdriver.chrome.driver=/var/www/html/wp-content/plugins/WPbdd/chromedriver -jar selenium.jar