web-dev-qa-db-ja.com

WebdriverとChrome:DevToolsActivePortファイルは存在しません

チームメイトが不在のときにUIのテストを行うためにSeleniumをインストール/設定しようとしています。 Selenium WebdriverとEclipse、およびChrome、Firefox、Edgeブラウザードライバーをインストールしました。ブラウザを起動してURLを開く非常に単純なスクリプトがいくつかあります。インストールと構成が適切であることを確認しようとしています。 FirefoxとEdgeは問題なく、期待どおりに動作します。ただし、chromeを動作させることはできません。

これが私のスクリプトです。

package firstPackage;

import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
import org.openqa.Selenium.chrome.ChromeOptions;

public class FirstScript {
    public static void main(String[] args) {        
        ChromeOptions options = new ChromeOptions();
        options.addArguments("disable-infobars");
        options.addArguments("--start-maximized");

        WebDriver driver = new ChromeDriver(options);
        driver.get("http://www.google.com");
    }
}

実行すると、Chromeが起動します。タブのタイトルは「data;」であり、アドレスバーのURLも「data;」です。ただし、ブラウザは指定したURL約60秒後、Eclipseウィンドウに次のエラーが表示されます。

Exception in thread "main" org.openqa.Selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.15 seconds
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: Host: 'XXXXXXX', ip: 'XXXXXXXXXX', os.name: 'Windows 10', os.Arch: 'AMD64', os.version: '10.0', Java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at Java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.Selenium.remote.ErrorHandler.createThrowable(ErrorHandler.Java:214)
    at org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.Java:166)
    at org.openqa.Selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.Java:53)
    at org.openqa.Selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.Java:91)
    at org.openqa.Selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.Java:123)
    at Java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at Java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
    at Java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
    at Java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
    at Java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at Java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at Java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
    at Java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at Java.util.stream.ReferencePipeline.findFirst(Unknown Source)
    at org.openqa.Selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.Java:126)
    at org.openqa.Selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.Java:73)
    at org.openqa.Selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.Java:136)
    at org.openqa.Selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.Java:83)
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:543)
    at org.openqa.Selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.Java:207)
    at org.openqa.Selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.Java:130)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:181)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:168)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:157)
    at firstPackage.FirstScript.main(FirstScript.Java:14)

Googleの検索で、いくつかのオプション設定がうまくいくかもしれないと示唆するいくつかの投稿に至りました。これらは私が試したものです:

options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox"); // Bypass OS security model

これらのどれも私にとって問題を解決しませんでした。動作は同じままでした。

実行しています:Windows 10(OSビルド16299)Selenium 3.12.0 ChromeDriver 2.39 Chrome 67.0.3396.79

誰が私が間違っているのかについて提案がありますか?

6
Mike

私はこれをRubyで--headlessオプション。たぶんそれが役立ちます。

7
Leticia Esperon