首页 > 解决方案 > 麦克 | Chrome 超时从渲染器接收消息:10.000

问题描述

我已经看到很多关于这个问题的帖子,但我仍然无法解决它。运行 1000+ 测试它总是失败并出现以下错误。我也试过了,chrome options但还是没有运气

铬设置

WebDriverManager.chromedriver().setup();
chromeOptions.setAcceptInsecureCerts(true);
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--disable-browser-side-navigation");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--disable-features=VizDisplayCompositor");
chromeOptions.addArguments("enable-automation");
chromeOptions.addArguments("start-maximized");
driver = new ChromeDriver(chromeOptions);
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
return driver;

Java版

 java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

Pom.xml

    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>


    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-remote-driver</artifactId>
    <version>3.141.59</version>

铬浏览器

Version 90.0.4430.72 (Official Build) (x86_64)

错误

[1620508128.868][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508128.869][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508138.870][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508148.876][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508148.876][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508158.878][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508168.882][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508168.882][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508178.883][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508188.892][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508188.893][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508198.893][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508208.898][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508208.898][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508218.899][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508228.905][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508228.906][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508238.907][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508248.916][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508248.916][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508258.917][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508268.924][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508268.924][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508278.926][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508288.933][SEVERE]: Timed out receiving message from renderer: 10.000
[1620508288.933][WARNING]: screenshot failed, retrying timeout: Timed out receiving message from renderer: 10.000
[1620508298.935][SEVERE]: Timed out receiving message from renderer: 10.000
org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: 10.000
  (Session info: chrome=90.0.4430.72)

最终失败的屏幕截图代码

public static MediaEntityModelProvider screenShot() {
    File file;
    MediaEntityModelProvider screenShot = null;
    String screenshot_location = path+ "_img.png";
    file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    try {
        FileUtils.copyFile(file, new File(screenshot_location));
        screenShot = MediaEntityBuilder.createScreenCaptureFromPath(screenshot_location).build();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return screenShot;
}

基本上它在这条线上失败了file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

标签: selenium-webdrivertestingautomated-testsselenium-chromedriverwebdriver-manager

解决方案


推荐阅读