当前位置: 首页 > 知识库问答 >
问题:

错误[严重]:在Jenkins上通过Selenium执行测试套件时,从渲染器接收消息超时:20.000

邓嘉致
2023-03-14

我使用ChromeDriver和Selenium来运行自动测试。测试套件在Eclipse和命令行中都成功运行。然而,当我试图在Jenkins中构建它时,它并没有运行。

这是生成的控制台输出:

[junit] Running main.TESTNAME
    [junit] Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 27352
    [junit] Only local connections are allowed.
    [junit] Apr 26, 2018 3:52:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    [junit] INFO: Detected dialect: OSS
    [junit] Running through test suite as:
    [junit] User: USERNAME
    [junit] URL: CONFIDENTIAL
    [junit] [30.168][SEVERE]: Timed out receiving message from renderer: 20.000
    [junit] [30.170][SEVERE]: Timed out receiving message from renderer: -0.003
    [junit] Total number of tests ran for TESTNAME: 5, Number of tests failures: 4, Number of tests ignored: 0
    [junit] testViewProfileDetailsButtonAndBrowseBack(test.TESTNAME): timeout
    [junit]   (Session info: chrome=64.0.3282.119)
    [junit]   (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64) (WARNING: The server did not provide any stacktrace information)
    [junit] Command duration or timeout: 0 milliseconds
    [junit] Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z'
    [junit] System info: host: 'PC', ip: 'IP', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
    [junit] Driver info: org.openqa.selenium.chrome.ChromeDriver
    [junit] Capabilities {acceptSslCerts: true, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.33.506120 (e3e53437346286..., userDataDir: C:\WINDOWS\TEMP\scoped_dir1...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 64.0.3282.119, webStorageEnabled: true}

我的构建。下面的xml大部分是自动生成的,除了我添加JUnit集成的末尾:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="build" name="PROJECTSeleniumTest">
<property environment="env"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.8"/>
<property name="source" value="1.8"/>
<path id="PROJECTSeleniumTest.classpath">
    <pathelement location="bin"/>
    <pathelement location="lib/byte-buddy-1.7.5.jar"/>
    <pathelement location="lib/client-combined-3.8.1-sources.jar"/>
    <pathelement location="lib/client-combined-3.8.1.jar"/>
    <pathelement location="lib/commons-codec-1.10.jar"/>
    <pathelement location="lib/commons-exec-1.3.jar"/>
    <pathelement location="lib/commons-logging-1.2.jar"/>
    <pathelement location="lib/gson-2.8.2.jar"/>
    <pathelement location="lib/guava-23.0.jar"/>
    <pathelement location="lib/hamcrest-core-1.3.jar"/>
    <pathelement location="lib/httpclient-4.5.3.jar"/>
    <pathelement location="lib/httpcore-4.4.6.jar"/>
    <pathelement location="lib/junit-4.12.jar"/>
</path>
<target name="init">
    <mkdir dir="bin"/>
    <copy includeemptydirs="false" todir="bin">
        <fileset dir="src">
            <exclude name="**/*.launch"/>
            <exclude name="**/*.java"/>
        </fileset>
    </copy>
</target>
<target name="clean">
    <delete dir="bin"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-subprojects,build-project,junit" name="build"/>
<target name="build-subprojects"/>
<target depends="init" name="build-project">
    <echo message="${ant.project.name}: ${ant.file}"/>
    <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}">
        <src path="src"/>
        <classpath refid="PROJECTSeleniumTest.classpath"/>
    </javac>
</target>

<target name="create_directory">
    <echo message="Create the directory JenkinsTestReports\" />
    <mkdir dir="JenkinsTestReports" />
</target>   

<target name="junit" depends="create_directory">
    <echo message="${java.version}"/>
    <junit printsummary="yes" fork="yes" haltonfailure="yes">
        <classpath>
            <path refid="PROJECTSeleniumTest.classpath" />
            <pathelement location="${basedir}\bin"/>
        </classpath>
        <batchtest todir="JenkinsTestReports" fork="true">
          <fileset dir="${basedir}\bin">
            <include name="main\TESTNAME.class"/>
          </fileset>
        </batchtest>
        <formatter type="xml"/>
        <formatter type="plain"/>
    </junit>
</target>

有人知道原因吗?谢谢。


共有2个答案

巫马修为
2023-03-14

删除超时为我解决了这个问题:

driver.manage().timeouts().implicitlyWait
driver.manage().timeouts().pageLoadTimeout
driver.manage().timeouts().setScriptTimeout

喜欢

//driver.manage().timeouts().implicitlyWait(2000, TimeUnit.MILLISECONDS);
//driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
//driver.manage().timeouts().setScriptTimeout(60, TimeUnit.SECONDS);
元昊苍
2023-03-14

此错误消息...

[30.168][SEVERE]: Timed out receiving message from renderer: 20.000

...意味着ChromeDriver无法启动新的Chrome浏览器进程。

您的主要问题是正在使用的二进制文件之间的版本兼容性,如下所示:

  • 您使用的是chromeDrive=2.33
  • chromeDriver=2.33的发行说明清楚地提到了以下内容:

支持Chrome v60-62

  • 您正在使用chrome=64.0
  • ChromeDriver v2的发行说明。第35条明确提到以下内容:

支持Chromev62-64(包括您正在使用的浏览器版本)

    您的Selenium客户端版本是3.8.1。
  • 您的JDK版本是1.8。0_151相当古老。

因此,JDK v8u151、Selenium Client v3.8.1、ChromeDriver v2.33和ChromeBrowser v64.0之间存在明显的不匹配

  • 将JDK升级到最新级别JDK 8u162
  • 将Selenium升级到当前版本3.11.0
  • 将ChromeDriver升级到当前的ChromeDriver v2。38级
  • 将Chrome版本保持在Chrome v66。x级。(根据ChromeDriver v2.38发行说明)
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 在执行测试套件之前和之后,使用CCleaner工具清除所有操作系统杂务
  • 如果您的基本Web客户端版本太旧,请通过Revo卸载程序卸载它,并安装最新的GA和发布的Web客户端版本
  • 重新启动系统
  • 执行@测试
 类似资料:
  • 我试图从一些门户网站获取交易状态,我在我的java应用程序中使用下面的chrome设置 从渲染器接收消息时超时:60.000 所有悬而未决的交易都在超时。 会话信息:headless chrome=68.0.3440.75 驱动程序信息:chromedriver=2.38(0) 平台=Linux 2.6.32-696.23.1。el6。x86_64 x86_64) 我如何处理这个问题,如果发生任何

  • 您好,我在chrome中通过SeleniumWebDriver执行UI测试时遇到以下错误。 81.0.4044.69。 [1586841277.704][严重]:从渲染器接收消息超时:0.100 有人能帮我修一下吗?

  • 问题内容: 我正在尝试从某个门户网站获取交易状态,并且在我的Java应用程序中使用了以下chrome设置, 超时从渲染器接收消息:60.000 并且所有待处理的交易都已超时。 会话信息:headless chrome = 68.0.3440.75 驱动程序信息: chromedriver = 2.38 (0) 平台= Linux 2.6.32-696.23.1.el6.x86_64 x86_64)

  • 在Chrome发布了他们最新的稳定版本(89.0.4389.90),我现在收到这个错误: 硒。常见的例外情况。TimeoutException:消息:超时:从呈现程序接收消息时超时:291.642(会话信息:headless chrome=89.0.4389.90) 我的Python代码是 (我的chromedriver是89.0.4389.23是unic) 有人能帮我修一下吗?

  • 我们最近升级了我们的测试环境ChromeDriver v80.0.3987.16和Chromev80.0.3987.87(官方构建)(64位),升级后,即使是最小的程序也会产生大量这些严重的日志: 在ChromeDriver v79之前,偶尔会观察到这些信息。0/铬v79。0组合。 最小代码块: 控制台输出: 有人面对同样的问题吗?相对于ChromeDriver/Chrome v79,Chrome

  • 使用方法加载Url,大约需要4分钟,会引发以下异常 在端口6967上启动ChromeDriver 73.0.3683.68(47787EC04B6E38E22703E856E101E840B65AFE72)只允许本地连接。请保护ChromeDriver和相关测试框架使用的端口,以防止恶意代码访问。2019年4月20日3:59:52 PM org.openqa.selenium.remote.pro