2017-03-06 132 views
0

問題:硒/ webdriver的:火狐/ chrome瀏覽器打開,但超時

的Chrome/Firefox瀏覽器中打開,但不能導航和超時。

依賴和默認的外部環境JRE庫:

的Eclipse

硒的Java 3.2

瀏覽器:

鉻 - 版本56.0.2924.87(64位)

firefox - 51.0.1(32-bit)

火狐代碼:

System.setProperty("webdriver.gecko.driver", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
WebDriver netDriver = new FirefoxDriver(); 
netDriver.get("www.gmail.com"); 

似乎相當直接的,對不對?但瀏覽器沒有打開,也沒有導航到Gmail。

堆棧跟蹤:

at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:293) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:272) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:267) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:263) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:122) 
    at driverTest.driverTest.main(driverTest.java:13) 
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:20034 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) 
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:142) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:88) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:108) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:64) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
    ... 9 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    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.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74) 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141) 

它看起來像一個代理的問題,但我不能肯定,因爲我不熟悉的硒那麼多。

谷歌代碼:

System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"); 
     netDriver = new ChromeDriver(); 
     netDriver.navigate().to("www.gmail.com"); 

這將打開瀏覽器,但同樣不會進入Gmail和超時使用不同的超時錯誤。

at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:180) 
     at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:168) 
     at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 
     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 
     at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141) 
     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 cucumber.feature.webStepDefinitions.navigateToWebsite(webStepDefinitions.java:23) 
     at ?.Given I navigated to the QA OnBoard site(C:/Users/tscanlon/workspace/webReleaseAutomation/src/cucumber/feature/netfeature.feature:5) 
     Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:18101/status] to be available after 20011 ms 
     at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:107) 
     at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:177) 
     at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:168) 
     at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 
     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 
     at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141) 
     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 cucumber.feature.webStepDefinitions.navigateToWebsite(webStepDefinitions.java:23) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at cucumber.runtime.Utils$1.call(Utils.java:37) 
     at cucumber.runtime.Timeout.timeout(Timeout.java:13) 
     at cucumber.runtime.Utils.invoke(Utils.java:31) 
     at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38) 
     at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37) 
     at cucumber.runtime.Runtime.runStep(Runtime.java:299) 
     at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44) 
     at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39) 
     at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44) 
     at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165) 
     at cucumber.runtime.Runtime.run(Runtime.java:121) 
     at cucumber.api.cli.Main.run(Main.java:36) 
     at cucumber.api.cli.Main.main(Main.java:18) 
     Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException 
     at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:140) 
     at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:80) 
     ... 28 more 
     Caused by: java.util.concurrent.TimeoutException 
     at java.util.concurrent.FutureTask.get(Unknown Source) 
     at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:128) 
     ... 29 more 

    When I login         # webStepDefinitions.userLogin() 
    Then Create a meeting       # webStepDefinitions.meetingCreation() 

Failed scenarios: 


org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. 
Build info: version: '3.1.0', revision: '86a5d70', time: '2017-02-16 07:57:44 -0800' 

Driver info: driver.version: ChromeDriver 
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:180) 
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:168) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141) 
    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 cucumber.feature.webStepDefinitions.navigateToWebsite(webStepDefinitions.java:23) 
    at ?.Given I navigated to the QA OnBoard site(C:/Users/tscanlon/workspace/webReleaseAutomation/src/cucumber/feature/netfeature.feature:5) 
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:18101/status] to be available after 20011 ms 
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:107) 
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:177) 
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:168) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141) 
    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 cucumber.feature.webStepDefinitions.navigateToWebsite(webStepDefinitions.java:23) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at cucumber.runtime.Utils$1.call(Utils.java:37) 
    at cucumber.runtime.Timeout.timeout(Timeout.java:13) 
    at cucumber.runtime.Utils.invoke(Utils.java:31) 
    at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38) 
    at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37) 
    at cucumber.runtime.Runtime.runStep(Runtime.java:299) 
    at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44) 
    at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39) 
    at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44) 
    at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165) 
    at cucumber.runtime.Runtime.run(Runtime.java:121) 
    at cucumber.api.cli.Main.run(Main.java:36) 
    at cucumber.api.cli.Main.main(Main.java:18) 
Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException 
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:140) 
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:80) 
    ... 28 more 
Caused by: java.util.concurrent.TimeoutException 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:128) 

我認爲兩者都與某種防火牆/代理問題有關。有什麼建議?我嘗試了幾次解決方案,每次都有相同的錯誤。

+0

你試過另一個域名嗎?也許你可以使用IP地址來確保它不是與DNS請求相關的問題。 – JulienCsj

回答

0

**您需要在網址中添加協議httphttpshttps://www.gmail.com

如果不工作,然後提供geckodriver.exechromedriver.exe路徑不是Firefox或Chrome exe路徑

下載geckodriver from here或chromedriver.exe from here

,並設置屬性,如:

System.setProperty("webdriver.gecko.driver", "drive path\\geckodriver.exe"); 
WebDriver netDriver = new FirefoxDriver(); 
netDriver.get("https://www.gmail.com"); 
+0

我在之前的調試過程中使用了chromedriver,這似乎不起作用,現在它工作正常...任何原因,爲什麼原始chrome.exe一致失敗? – potatocode

+0

其實硒api需要chromedriver打開並與Chrome瀏覽器交互 – NarendraR

0

我與Firefox相同的問題,但在安裝geckodriver後,問題變得更好安裝geckodrive r並嘗試一次

相關問題