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