开发者问题收集

执行 selenium 测试时浏览器未在 Jenkins 中打开

2019-03-26
21498

我正尝试在 Jenkins 中启动一个作业,该作业执行 Selenium 脚本。它运行了几个月,但今天由于未知原因停止了工作。此作业像往常一样启动了第一个测试,然后卡住了。我没有收到任何错误,只是在此之后什么也没发生:

TEST STARTED: test
-------------------------------------------------------------------
[main] INFO net.serenitybdd.core.Serenity - TEST NUMBER: 1
März 26, 2019 3:02:23 NACHM. org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
Starting ChromeDriver 73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72) on port 46182
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
März 26, 2019 3:02:25 NACHM. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C

我意识到,每次我使用 chrome 启动作业时,都会有一个新的 Google Chrome 进程添加到任务管理器中,因此我假设 chrome 窗口正在显示。此外,当我终止这些进程时,我得到了这个:

...
[1553694146.113][SEVERE]: Timed out receiving message from renderer: 10.000
[1553694146.113][WARNING]: screenshot failed, retrying
[1553694156.113][SEVERE]: Timed out receiving message from renderer: 10.000
[1553694166.118][SEVERE]: Timed out receiving message from renderer: 10.000
[1553694166.118][WARNING]: screenshot failed, retrying
[main] WARN net.thucydides.core.webdriver.WebDriverFacade - Failed to take screenshot (unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
 (Session info: chrome=73.0.3683.86)
 (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.17763 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-5QTQGUC', ip: '192.168.178.23', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.1'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 73.0.3683.68 (47787ec04b6e3..., userDataDir: C:\WINDOWS\TEMP\scoped_dir5...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:3697}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 73.0.3683.86, webStorageEnabled: true}
Session ID: da5e7153b21e4cb075843ac4e541ab6f)
[main] ERROR net.thucydides.core.steps.ConsoleLoggingListener -
...

我尝试更新 Jenkins 和所有插件,更新了我的浏览器和 webdriver,关闭了防火墙和防病毒软件。到目前为止没有任何帮助。我仍然能够通过 ide 在本地运行所有测试,但不知道 Jenkins 出了什么问题,导致我无法运行测试。

有什么想法吗,可能出了什么问题以及如何处理?

PS 它在 Firefox 中运行良好,但我还需要 Chrome

3个回答

对于 Windows:

我想补充一下 Jenkins 何时会在浏览器中显示正在运行的自动化测试用例。

首先,您不应该将 Jenkins 安装为 Windows 应用程序。 即使您这样做了,但没有选中“登录选项卡”下的“允许服务与桌面交互”复选框,那么 Jenkins 也不会在浏览器中显示正在运行的测试用例。在哪里可以找到此选项卡 -

1) 在 Windows 中,选择 Jenkins 的服务

2) 打开服务的属性窗口 -> 登录 ->启用复选框“允许服务与桌面交互”

3)您必须切换 NoInteractiveServices 注册表项

4)之后您应该重新启动服务 Jenkins。

最佳方法 您应该从 war 文件部署 Jenkins,如下所示:

1)从 Jenkins 的官方网站下载 Jenkins.war。 (如果已安装,只需转到 Jenkins 安装默认路径为“C:\Program Files (x86)\Jenkins\”的文件夹)

2)通过命令提示符部署它:java -jar {directoryOfJenkinsFileInWindows}/jenkins.war

3)现在您可以通过 http://localhost:8080

访问 Jenkins 管理
TheSociety
2019-03-26

此错误消息...

903170738

...意味着您已经使用了 desciredcapabilities() class的实例strong> chrome ,但是当创建会话时,检测到的方言为 w3c

作为一般意识:

  • chrome Chromedriver is oss 投诉
  • geckodriver / firefox iedriverserver / Internet Explorer w3c 。

您的代码块将帮助我们以更好的方式调试问题。也许尽管您已经使用了 DesiredCapabilities() 类并为 Chrome 铸造,但是初始化时,您调用了 firefoxdriver() as:

62034935

解决方案

更改 webdriver 的初始化 as:

040875305
undetected Selenium
2019-03-27

所以。我发现了一个问题,这是一个 Chronium 错误。更多信息可以在 此处 找到。我将尝试将 webdriver 和 chrome 降级到旧版本,并分享结果。

编辑: 我已将 Chrome 降级到 版本 72.0.3626.81 ,并将 chromedriver 降级到 ChromeDriver 2.46 。效果很好。

注意: 我发现阻止 Chrome 自动更新到最新版本有点棘手。 这里 您可以找到一些有用的提示来处理它。我个人选择文件夹重命名 ))

Andrei Goldmann
2019-03-28