ChromeDriver 偶尔挂起,DevTools 请求失败.铬无法访问错误



>测试偶尔失败,并显示"无法访问Chrome"的错误。

Throwing a WebDriver exception: chrome not reachable
  (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.26 seconds
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:01:39.354Z'
System info: host: 'XXXXXXXX', ip: 'XXXXXXXXX', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: driver.version: Driver
Exception : org.openqa.selenium.NoSuchSessionException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:01:39.354Z'
System info: host: 'XXXXXXXX', ip: 'XXXXXXXXX', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: driver.version: Driver
[ERROR] Driver Initialize - Error initializing driver for browser 'CHROME'.  chrome not reachable
  (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.26 seconds
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:01:39.354Z'
System info: host: 'XXXXXXXXXX', ip: 'XXXXXXXXX', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: driver.version: Driver
org.openqa.selenium.WebDriverException: chrome not reachable
  (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.26 seconds
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:01:39.354Z'
System info: host: 'XXXXXXXX', ip: 'XXXXXXXXX', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: driver.version: Driver

当我进行一些日志记录时,我看到错误是 DevTools 请求失败。这种情况偶尔发生。看起来chromedriver为每个测试创建了一个用于调试的新端口,有时Chromedriver无法连接到新端口。不知道为什么,不知道如何解决它。有人经历过吗?

    [1516896066.375][INFO]: Launching chrome: "C:Program Files (x86)GoogleChromeApplicationchrome.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --load-extension="C:Usersmna7158AppDataLocalTempscoped_dir6732_10840internal" --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12923 --test-type=webdriver --use-mock-keychain --user-data-dir="C:Usersmna7158AppDataLocalTempscoped_dir6732_15347" data:,
[1516896066.431][DEBUG]: DevTools request: http://localhost:12923/json/version
[1516896068.429][DEBUG]: DevTools request failed
[1516896068.480][DEBUG]: DevTools request: http://localhost:12923/json/version
[1516896068.688][DEBUG]: DevTools request failed
[1516896068.739][DEBUG]: DevTools request: http://localhost:12923/json/version
[1516896070.481][DEBUG]: DevTools request failed
[1516896070.532][DEBUG]: DevTools request: http://localhost:12923/json/version
[1516896070.742][DEBUG]: DevTools request failed
[1516896070.793][DEBUG]: DevTools request: http://localhost:12923/json/version
[1516896072.532][DEBUG]: DevTools request failed

规格:

    Chrome 版本 64(
  • 64 位(
  • 操作系统 = 视窗 7
  • 铬驱动程序 2.35
  • 硒-爪哇 3.7.1

我收到此错误的示例代码。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class chromeDriverExample {
public WebDriver driver;
WebDriverWait wait;
@BeforeMethod
public void beforeMethod() {
    System.setProperty("webdriver.chrome.driver", "src//test//resources//drivers//chromedriver.exe");
    System.setProperty("webdriver.chrome.verboseLogging", "true");
    driver = new ChromeDriver();
    wait = new WebDriverWait(driver, 30);
}
@AfterMethod
public void afterMethod() {
    driver.close();
    driver.quit();
}
@Test(invocationCount = 15)
public void chromeTest() {
    driver.get("https://google.com");
    wait.until(ExpectedConditions.presenceOfElementLocated(By.name("q")));
}
}

这可能相关,也可能不相关,但我看到了类似的东西。自从我的本地Chrome自动更新(macOS(到v64以来,我们看到了很多零星的Selenium TimeoutExceptions。如果我伪造我的 Chrome 版本并将其固定在版本 63,这不会发生。v64 中有些东西被破坏或更改了,但我正在努力确定什么。我不知道新的ChromeDriver是否迫在眉睫,并且会修复它。

最新更新