0

私のセレンのwebdriverで一般的な接続が拒否されました。数週間前に同じコードが実行されていました。Java Selenium Webdriver Connection Refused

私は既存の投稿を通じてサークルを読んでいて、geckodriverとFireFoxを無駄に更新しようとしました。同じバージョンのドライバ、ブラウザ、ライブラリなどを実行している別のコンピュータで同じコードを実行できます。どのようにしてこのマシン固有の原因を見つけることができますか?エラーは以下のとおりです。

デバッグ1 デバッグ2デバッグスレッド "メイン" org.openqa.selenium.WebDriverException 3

例外:org.apache.http.conn.HttpHostConnectException:ローカルホストへの接続:28379 [ローカルホスト/ 127.0。 0.1、localhost/0:0:0:0:0:0:0:0:1]接続が拒否されました:接続ビルド情報:バージョン: '不明'、改訂: '不明'、時刻: '不明'システム情報:ホスト:'10 .130.3.15 '、os.name:' Windows 10 '、os.arch:' amd64 '、os.version:'10 .0'、java.version: '1.8.0_131'ドライバ情報: 'LT9LTDRC2' driver.version:Gecko_Driver at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91)at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)at org.openqaリモートWebSite.java:250)。org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)at org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java: 137)org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:191)at org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:108)at org.openqa.selenium.firefox.FirefoxDriver( (Gecko_Driver.java:13)の原因:org.apache.http.conn.HttpHostConnectException:ローカルホストに接続:28379 [localhost/127.0.0.1、localhost/0:0:FirefoxDriver.java:137]のseleniumPrograms.Gecko_Driver.main 0:0:0:0:0:1] failed:Connection refused:org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)でorg.apache.http.impl.connに接続します。 org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)at PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)at org.apache.http.impl。 org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)のexecchain.RetryExec.execute(RetryExec.java:89)をorg.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient。 java:185)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)at org.openqa .selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:139)at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:87)at org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:343)at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:159)at org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:142)at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)... 8もっとひどい原因:java.net.ConnectException:接続が拒否されました:connect at java.net .DualStackPlainSocketImpl.waitForConnect(ネイティブメソッド)at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)at java.net.AbstractPlainSocketImpl org.apache.http.connのjava.net.Socket.connect(Unknown Source)のjava.net.SocksSocketImpl.connect(不明なソース)のjava.net.PlainSocketImpl.connect(不明なソース)の.connect(不明なソース) .socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)(org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.java:142)... 23 more

そしてこれは次の基本コードでも実行されます。

enter code here 
package seleniumPrograms; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.firefox.FirefoxDriver; 
    import org.openqa.selenium.remote.DesiredCapabilities; 

    public class Gecko_Driver { 
     public static void main(String[] args) { 
      System.out.println("Debug 1"); 
      DesiredCapabilities capabilities=DesiredCapabilities.firefox(); 
      System.out.println("Debug 2"); 
      capabilities.setCapability("marionette", true); 
      System.out.println("Debug 3"); 
      WebDriver driver = new FirefoxDriver(capabilities); 
      System.out.println("Debug 4"); 
      driver.get("http://www.google.com"); 

      driver.manage().window().maximize(); 
      driver.quit(); 
     } 
} 

クロムを使用した例。

@Test 
     public void testGoogleSearch() throws InterruptedException { 
      // Optional, if not specified, WebDriver will search your path for chromedriver. 
      System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe"); 

      WebDriver driver = new ChromeDriver(); 
      driver.get("http://www.google.com/xhtml"); 
      Thread.sleep(5000); // Let the user actually see something! 
      WebElement searchBox = driver.findElement(By.name("q")); 
      searchBox.sendKeys("ChromeDriver"); 
      searchBox.submit(); 
      Thread.sleep(5000); // Let the user actually see something! 
      driver.quit(); 
     } 

障害トレース:

org.openqa.selenium.WebDriverException:ドライバサーバが起動するのを待つタイムアウトしました。 ビルド情報:バージョン: '不明'、改訂: '不明'、時刻: '不明' システム情報:ホスト: 'LT9LTDRC2'、IP: '192.168.1.6'、os.name: 'Windows 10'、os。 ":" amd64 "、os.version:'10 .0 '、java.version:' 1.8.0_131 ' ドライバ情報:driver.version:Gecko_Driver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService。 java:193) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:181) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250) at org.openqa.se lenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) at org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:137) at org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java: 184)org.openqa.selenium.chrome.ChromeDriverで 。(ChromeDriver.java:171)org.openqa.selenium.chrome.ChromeDriverで 。(ChromeDriver.java:124) seleniumPrograms.Gecko_Driver.testGoogleSearch(Gecko_Driverました。 Javaの:16) sun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) (不明なソース) で(不明なソース) れるjava.lang.reflectで.Method.invoke(Unknown Source) at org.juni t.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod .invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) (ParentRunner 3.run org.junit.runners.ParentRunner $でorg.junit.runners.BlockJUnit4ClassRunner.runChildでorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) (BlockJUnit4ClassRunner.java:57)で。 java:290) at org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58) at org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:58) java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org。 ja.png。 jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 原因:org.openqa.selenium.net。UrlChecker $ TimeoutException:[http://localhost:31675/status]が20002の後に利用可能になるのを待ってタイムアウトしました。 at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:107) at org.openqa.selenium.remote.service.DriverService。 waitUntilAvailable(DriverService.java:190) ... 33 more 原因:com.google.common.util.concurrent.UncheckedTimeoutException:java.util.concurrent.TimeoutException at com.google.common.util.concurrent.SimpleTimeLimiter .callWithTimeout org.openqa.selenium.net.UrlChecker.waitUntilAvailableで(SimpleTimeLimiter.java:140) (UrlChecker.java:80) ... 34以上に起因する ます。javaでjava.util.concurrent.TimeoutException 。 util.concurrent.FutureTask.get(不明なソース)com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:128) で... 35もっと

答えて

0

あなたはカップルのデバッグ出力を行うことができますか? すなわち

System.out.println("Debug 1"); 
System.out.println("Debug 2"); 
System.out.println("Debug 3"); 

アプリがクラッシュした場合等...ので、多分私たちが見ることができますか?ここで

+0

あなたの迅速な対応に感謝します。 FirefoxDriver() –

+0

System.setProperty( "webdriver.gecko.driver"、 "C:\ Temp \ Drivers and Libraries \\ geckodriver-v0.16.1-win64 \\ geckodriver.exe")のインスタンス化で失敗します。 \t System.out.println( "Debug 1"); \t DesiredCapabilities capabilities = DesiredCapabilities.firefox(); \t System.out.println( "Debug 2"); \t capabilities.setCapability( "marionette"、true); \t System.out.println( "Debug 3"); \t WebDriverドライバ=新しいFirefoxDriver(); \t System.out.println( "Debug 4"); \t driver.get( "http://www.google.com"); \t \t driver.manage()。window()。maximize(); –

+0

デバッグ4は決して印刷されません –

0

があなたの質問を解決する:

私はあなたのコード内のようなエラーが表示されていないが、エラーのスタックトレースHttpHostConnectExceptionはそれをすべて言います。

次の手順を実行します。

  1. 私はthrows InterruptedExceptionを使用するための任意の必要性を見ていない、あなたはそれを削除するために検討することができます。
  2. ベストプラクティスに従って、便利な場所にジェコドライブをつけてください。 C:\\your_directory
  3. Tempでディレクトリ名を使用しないでください。

  4. DesiredCapabilitiesクラスの助けを借りていますが、ドライバインスタンスを起動している間は、このクラスを渡していません。あなたはしなければなりません:

    WebDriver driver = new FirefoxDriver(capabilities); 
    
  5. Mozilla Firefoxブラウザのキャッシュをクリアします。

  6. geckodriver.exeの実行中のインスタンスをすべて手動で削除する
  7. 不要なものをすべて避けるためにCCleanerを実行する必要があります。
  8. マシンを再起動します。
  9. テストを実行します。それはうまくいくはずです。
  10. テストステップの最後に、driver.quit()に電話して、geckodriverインスタンスがぶら下がるのを防ぎます。

    System.setProperty("webdriver.gecko.driver", "C:\\your_directory\\geckodriver.exe"); 
    System.out.println("Debug 1"); 
    DesiredCapabilities capabilities=DesiredCapabilities.firefox(); 
    System.out.println("Debug 2"); 
    capabilities.setCapability("marionette", true); 
    System.out.println("Debug 3"); 
    WebDriver driver = new FirefoxDriver(capabilities); 
    System.out.println("Debug 4"); 
    driver.get("http://www.google.com"); 
    driver.manage().window().maximize(); 
    driver.quit(); 
    

これがあなたを助けている場合、私に教えてください:ここで

  • System.setProperty行を追加し、独自の作業コードブロックです。

  • +0

    ありがとうございました。残念なことに、すべての推奨手順を完了した後でも同じエラーが表示されます。 –

    +0

    残念ながら変更はありません。私はgeckodriverを環境変数に設定しているので、これを設定する必要はありません。 –

    +0

    今後の分析のため、質問領域の現在のコードとエラースタックトレースを更新してください。おかげで – DebanjanB

    2

    セキュリティ部門は、geckodriver.exeの実行へのアクセスをブロックするポリシーを導入しました。これはcmdから実行しようとすると識別されました。 geckoのIDE(グループポリシーでブロックされている)で意味のあるエラーが表示されなかった理由はわかりませんが、chromeとIEでこのエラーが発生しました。ドライバを使用するには、プログラムファイルに保存する必要がありましたが、これは私の状況に固有のものです。 Geckodriverにこのエラーが出たら、私はcmdからそれを実行して、ポリシーの問題があるかどうかを調べることを提案します。