执行硒测试时,浏览器无法在Jenkins中打开

时间:2019-03-26 14:24:31

标签: java selenium google-chrome jenkins selenium-webdriver

我正在尝试在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,并且所有插件都已更新,我的浏览器和网络驱动程序也已关闭防火墙和防病毒软件。到目前为止,没有任何帮助。我仍然可以通过ide运行所有本地测试,并且不知道Jenkins出了什么问题,因为我无法运行测试。

任何想法,可能出什么问题以及如何解决?

PS在Firefox中可以正常工作,但我也需要镀铬

5 个答案:

答案 0 :(得分:1)

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

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

1)在Windows服务中,选择詹金斯服务

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

然后,您应该重新启动服务詹金斯。

最佳方法 您应按照以下步骤从战争文件中部署Jenkins:

1)从Jenkins官方网站下载jenkins.war

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

3)现在您可以在http:// localhost:8080上访问jenkins管理

答案 1 :(得分:0)

此错误消息...

encodeForHTML()

...表示您已使用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 ,但是在创建会话时,检测到的方言是 W3C < / p>

作为一般意识:

  • Chrome ChromeDriver OSS 投诉
  • GeckoDriver / Firefox IEDriverServer / Internet Explorer W3C 的投诉。

您的代码块将帮助我们以更好的方式调试问题。也许虽然您使用过DesiredCapabilities()类并为 chrome 进行了强制转换,但是在初始化时您已将DesiredCapabilities()调用为:

FirefoxDriver()

解决方案

WebDriver 的初始化更改为:

WebDriver driver =  new FirefoxDriver();

答案 2 :(得分:0)

所以。我发现了一个问题,它是一个Chronium错误。可以找到更多信息here。我将尝试将webdriver和chrome降级到较旧的版本,并共享结果。

编辑: 我已将Chrome降级为Version 72.0.3626.81,将chromedriver降级为ChromeDriver 2.46。效果很好。

注意: 我发现要阻止Chrome自动更新到最新版本有些棘手。 Here中,您会找到一些有用的提示,以了解如何处理。我个人选择文件夹重命名))

答案 3 :(得分:0)

主要是由于兼容性问题(硒和chrome驱动程序版本)。请参阅http://chromedriver.chromium.org/downloads

Selenium Timed out receiving message from renderer

答案 4 :(得分:0)

有效的解决方案-通过下载通用Java软件包(.war)安装Jenkins,安装后浏览器将在运行硒测试时自动打开。

https://www.jenkins.io/download/

请参阅以下URL,以安装支持打开浏览器并运行测试的Jenkins。 https://itsforlavanya.blogspot.com/2020/08/jenkins-installation-install-jenkins-in.html

enter image description here