Java Selenium Web驱动程序连接被拒绝

Java Selenium Web驱动程序连接被拒绝,java,selenium,selenium-webdriver,geckodriver,connection-refused,Java,Selenium,Selenium Webdriver,Geckodriver,Connection Refused,我在selenium webdriver上遇到了非常常见的连接被拒绝错误。几周前也在执行同样的代码 我一直在通过现有的帖子转圈阅读,并尝试更新geckodriver和FireFox,但都无济于事。我可以在另一台运行相同版本的驱动程序、浏览器和库等的计算机上运行相同的代码。如何找到这台计算机的特定原因?错误如下 调试1 调试2 调试3 例如使用chrome @Test public void testGoogleSearch() throws InterruptedExceptio

我在selenium webdriver上遇到了非常常见的连接被拒绝错误。几周前也在执行同样的代码

我一直在通过现有的帖子转圈阅读,并尝试更新geckodriver和FireFox,但都无济于事。我可以在另一台运行相同版本的驱动程序、浏览器和库等的计算机上运行相同的代码。如何找到这台计算机的特定原因?错误如下

调试1 调试2 调试3

例如使用chrome

@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.arch:'amd64',os.version:'10.0',java.version:'1.8.0131' 驱动程序信息:Driver.version:Gecko_驱动程序 位于org.openqa.selenium.remote.service.DriverService.waitUntilavable(DriverService.java:193) 位于org.openqa.selenium.remote.service.DriverService.start(DriverService.java:181) 位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) 位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250) 位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 位于org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:137) 位于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.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于org.junit.runners.model.FrameworkMethod$1.runReflectVeCall(FrameworkMethod.java:50) 位于org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 位于org.junit.runners.model.FrameworkMethod.invokeeexplosive(FrameworkMethod.java:47) 位于org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 位于org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 位于org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 位于org.junit.runners.ParentRunner.run(ParentRunner.java:363) 位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 原因:org.openqa.selenium.net.UrlChecker$TimeoutException:等待[在20002毫秒后可用]超时 位于org.openqa.selenium.net.UrlChecker.waitUntilavable(UrlChecker.java:107) 位于org.openqa.selenium.remote.service.DriverService.waitUntilavable(DriverService.java:190) …还有33个 原因:com.google.common.util.concurrent.UncheckedTimeoutException:java.util.concurrent.TimeoutException 位于com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:140) 位于org.openqa.selenium.net.UrlChecker.waitUntilavable(UrlChecker.java:80) …还有34个 原因:java.util.concurrent.TimeoutException 位于java.util.concurrent.FutureTask.get(未知源) 位于com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:128) …还有35个


以下是您问题的解决方案:

我在代码中没有看到任何错误,但错误堆栈跟踪
HttpHostConnectException
说明了一切

执行以下步骤:

<>我不认为有必要使用<代码>抛出中断> <代码>,您可以考虑删除它。
  • 根据最佳实践,尽量将壁虎河保持在方便的位置:例如
    C:\\your\u目录
  • 避免将目录名与
    Temp
    一起使用

  • 虽然您已经获得了
    DesiredCapabilities
    类的帮助,但在启动驱动程序实例时,您尚未通过该类。您必须执行以下操作:

    WebDriver driver = new FirefoxDriver(capabilities);
    
  • 清除Mozilla Firefox浏览器缓存

  • 从Windows任务管理器中,手动杀死geckodriver.exe的所有运行实例
  • 您可能需要运行CCleaner来清除所有不需要的东西
  • 重新启动你的机器
  • 执行您的测试。它应该运行良好
  • 在测试步骤结束时,请调用
    driver.quit()
    ,以防止geckodriver实例悬空

  • 这是您自己的工作代码块,添加了
    System.setProperty
    行:

    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();
    

  • 如果这对您有帮助,请告诉我。

    我们的安全部门引入了一项政策,阻止访问geckodriv的执行
    WebDriver driver = new FirefoxDriver(capabilities);
    
    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();
    
    pkill geckodriver
    pkill firefox
    pkill selenium