web-dev-qa-db-ja.com

Chrome到達不能Selenium WebDriverエラー

私はこの問題に直面しています。私はこの質問がすでに存在することを知っています、そして、私は言及された解決策を試みました、それで私の構成とコードでこれを尋ねます。

以前はスクリプトが実行されていましたが、現在はそうではないので、基本的なオープンブラウザースクリプトを作成してみました。

Selenium WebDriverの最新バージョン: http://Selenium-release.storage.googleapis.com/3.5/Selenium-Java-3.5.0.Zip

ChromeDriverの最新バージョン: http://chromedriver.storage.googleapis.com/index.html?path=2.31/

基本的なOpenブラウザコード:

package Trial;

import Java.util.concurrent.TimeUnit;

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

public class Trial_Class {
    public static void main(String args[]){
        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("http://www.youtube.com");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    }
}

しかし、それでも私は以下のエラーを受け取っています:

 Starting ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) on port 43967
Only local connections are allowed.
Exception in thread "main" org.openqa.Selenium.WebDriverException: chrome not reachable
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 61.81 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: Host: 'SWATI', ip: '192.168.0.5', os.name: 'Windows 8.1', os.Arch: 'AMD64', os.version: '6.3', Java.version: '1.8.0_121'
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:215)
    at org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.Java:167)
    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$24(ProtocolHandshake.Java:360)
    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:363)
    at org.openqa.Selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.Java:137)
    at org.openqa.Selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.Java:142)
    at org.openqa.Selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.Java:82)
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:641)
    at org.openqa.Selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.Java:254)
    at org.openqa.Selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.Java:236)
    at org.openqa.Selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.Java:137)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:178)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:167)
    at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:124)
    at Trial.Trial_Class.main(Trial_Class.Java:11)

前もって感謝します。

13
user

Chromedriverはlocalhostを解決するのに苦労し、その間に印刷されたことがわかりました

Timed out connecting to Chrome, retrying...

最初にipv6を介して接続しようとし、次にipv4にフォールバックすると思います。だから私のために働いたのは、このように「localhost」の優先度を変更することでした

必要なことは、優先度を変更することだけです。

RegEditを開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters Create DisabledComponents DWORDレジストリ値に移動し、その値を20(16進数)に設定します。 src

1
apreg

Chromedriverは正常に起動しています:

「ポート43967でChromeDriver 2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8)を開始しています」

問題は、ブラウザ自体が応答しないことです。だから私は2つのアイデアがあります:

1)ブラウザがデフォルトの場所にインストールされていません。この場合、これをコードに追加します。

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);

2)ブラウザは最新バージョンですが、クロムドライバーは最新ではありません-現在は2.33です

0
Aneta

あなたが設定する必要があります

setProperty(String key, String path) 

ここ"key"は "webdriver.chrome.driver "および" path "は「ドライバが保存されているパス」です。単一のスラッシュを使用します" / "パス。

System.setProperty("webdriver.chrome.driver", "E:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.youtube.com");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

上記のコードは、Selenium jar 3.5.0でうまく機能します。希望はあなたのシステムでもうまく機能します。

0
iamsankalp89