2

私は Firefox と Chrome で素晴らしく機能する自動化のセットを持っており、IEDriver のインスタンスも起動したいと考えています。

Selenium の Google Code wikiに従って、IEDriver を正しいパスでセットアップしました (パスを変更すると、別の例外が発生するため、間違いなく正しいです)。しかし、何らかの理由でまだ起動できず、タイムアウトするだけです。

それを起動するコード (最後の行で例外がスローされます):

        File ieDriver = new File("C:/Users/whatever/path/IEDriverServer.exe");
        System.setProperty("webdriver.ie.driver", ieDriver.getAbsolutePath());
        WebDriver ie = new InternetExplorerDriver();

例外は次のとおりです。

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:201)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:184)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:143)
    at uk.co.know.kiteTest.WebDriverManager.<init>(WebDriverManager.java:52)
    at uk.co.know.kiteTest.RunAutomations.main(RunAutomations.java:13)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:165)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:62)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527)
    ... 7 more
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:38622/status] to be available after 20014 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:104)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:163)
    ... 9 more
Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:143)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:79)
    ... 10 more
4

7 に答える 7

2

Chrome を使用した Selenium WebDriver、発行:

(org.openqa.selenium.remote.UnreachableBrowserException) solution
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40'
Driver info: driver.version: ChromeDriver

上記の問題が発生している場合は、そのchromedriver.exe場所に移動して exe を実行してみてください。exeを実行できる場合は、以下のコードが機能します。それ以外の場合は、chromedriver フォルダーへのアクセス許可の問題になります。フォルダーの場所を変更するか、フォルダーにアクセス許可を与えて、chromedriver.exe をダブルクリックします。

解決:

  System.setProperty("webdriver.chrome.driver", "C:/Driver/chromedriver.exe");
  System.out.println(System.getProperty("webdriver.chrome.driver"));

  WebDriver driver3 = new ChromeDriver();
于 2014-02-11T07:02:04.693 に答える
2

ホスト (C:\Windows\system32\drivers\etc) に移動し、次の行が正しくあることを確認します: 127.0.0.1 localhost

于 2015-07-03T08:20:49.187 に答える
2

モバイル デバイス用の BrowserStack で Selenium スクリプトを実行しようとすると、同様の例外が発生しました。そして、この例外がスローされることがよくあります。最終的に仮想マシンが関与していることに気付き、エミュレーターの起動に時間がかかっていたため、UnreachableBrowserExceptionが発生していました。

再試行回数 (RetryCount) を設定し、リモート WebDriver の可用性を確認するために複数回試行 (retryAttempt) することで、これを処理するコードを以下に記述しました。

while(retryAttempt<=retryCount){
            try{

                WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
                return driver;
            }
            catch(UnreachableBrowserException e){
                Thread.sleep(10000);
                if(retryAttempt>retryCount){
                    logger.error("Remote Web Driver cannot be reached at this moment");
                }
            }
        }
于 2015-08-24T10:48:45.140 に答える
2

私はこの同じエラーにぶつかっていたので、この質問を見つけました。私の場合、システムに IEDriver.exe の 64 ビット バージョンがあることが判明しましたが、32 ビットの Windows プラットフォームを使用していました。したがって、このエラーは、OS がドライバー プログラムの実行に失敗したことを示していました。コマンド プロンプトでドライバーを直接実行してみましたが、実際には 32 ビット OS が 64 ビット ドライバー exe を実行可能プログラムとして認識していませんでした。

正しい 32 ビット IEDriver.exe を取得すると、問題が解決しました。

于 2014-02-19T13:47:52.483 に答える
1

同じ問題がありました。これは私のためにそれを修正しました:

DesiredCapabilities capabilitiesIE = DesiredCapabilities.internetExplorer();
capabilitiesIE.setCapability(
    InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(capabilitiesIE);
于 2013-11-01T11:08:22.560 に答える
1

不適切なドライバーの初期化を使用しているようです。私のプロジェクトのコードを試してください:

File file = new File("C:/Selenium/iexploredriver.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
于 2013-06-12T14:40:21.050 に答える