2017-08-15 110 views
2

我面對這個問題,我知道這個問題已經存在,我已經試過提及,因此我的配置和代碼問這鉻不可達硒的webdriver錯誤

此前腳本正在運行的解決方案,但現在他們AREN所以我試着製作一個基本的開放瀏覽器腳本。 最新硒的webdriver的版本:http://selenium-release.storage.googleapis.com/3.5/selenium-java-3.5.0.zip

最新版本上ChromeDriver:http://chromedriver.storage.googleapis.com/index.html?path=2.31/

基本打開瀏覽器代碼:

`package Trial; 

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class Trial_Class { 
    public static void main(String args[]){ 
     System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     driver.get("http://www.youtube.com"); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

    } 
} 
` 

不過還是我得到下面的錯誤:

Starting ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) on port 43967 
Only local connections are allowed. 
Exception in thread "main" org.openqa.selenium.WebDriverException: chrome not reachable 
    (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 61.81 seconds 
Build info: version: 'unknown', revision: 'unknown', time: 'unknown' 
System info: host: 'SWATI', ip: '192.168.0.5', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_121' 
Driver info: driver.version: ChromeDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167) 
    at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53) 
    at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91) 
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$24(ProtocolHandshake.java:360) 
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) 
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source) 
    at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) 
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) 
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source) 
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) 
    at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) 
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source) 
    at java.util.stream.ReferencePipeline.findFirst(Unknown Source) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:363) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:137) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:254) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137) 
    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 Trial.Trial_Class.main(Trial_Class.java:11) 

提前致謝。

+0

更新您的Chrome瀏覽器版本。 – Guy

回答

0

錯誤org.openqa.selenium.WebDriverException: chrome not reachable說這一切。

雖然您指定的Key屬性中System.setProperty("...", "...");正常,但你有沒有內Value場提供的chromedriver的絕對路徑。所以,如果你chromedriver位於內C:\Utility\BrowserDrivers,更新,如下System.setProperty("...", "...");行:

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); 

另外除去implicitlyWait()

第二個聲明一旦您設置ImplicitWait,它是有效的,直到WebDriver的壽命實例。有關更多詳細信息,請參閱此Discussion

+0

對不起,以前的評論是錯誤發送。非常感謝您的回覆, 我一直在給你提到的驅動程序路徑,它沒有工作,並已閱讀其中的一個答案,我們應該把chromedriver放在該項目本身,我試着在上面提到的代碼中這樣做。 我重試,因爲你提到。而我仍然面臨同樣的問題。 難道會有一些版本問題? ChromeDriver 2.31 的webdriver:硒的Java-3.5.0 Java版本: '1.8.0_121' os.name: '是Windows 8.1' – user

+0

@user你可以在任何地方放置'chromedriver.exe'您的系統內,並明確提及System.setProperty()中的'Value'字段中的絕對路徑' – DebanjanB

+0

是的,我正在使用相同的 System.setProperty(「webdriver.chrome.driver」,「C:\\ Users \\ swati \\ workspace \\ chromedriver.exe「); 但問題仍然存在。 – user

1

你必須設置

setProperty(String key, String path) 

這裏key是你的 「webdriver.chrome.driver」 和path是 「路徑在您的驅動程序存儲」。在路徑中使用單個正斜槓/

System.setProperty("webdriver.chrome.driver", "E:/chromedriver.exe"); 
WebDriver driver = new ChromeDriver(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
driver.get("http://www.youtube.com"); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

以上代碼在Selenium jar 3.5.0中運行良好。希望在你的系統中也能正常工作。

1

你chromedriver開始就好了:

「啓動ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8)端口43967」

問題是瀏覽器本身不響應。所以我有兩個想法:

1)您的瀏覽器未安裝在默認位置;如果是這樣的情況下,添加到您的代碼:

ChromeOptions options = new ChromeOptions(); 
options.setBinary("/path/to/other/chrome/binary"); 
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions); 
WebDriver driver = new ChromeDriver(capabilities); 

2)您的瀏覽器是最新版本,但你的chromedriver不是 - 電流爲2.33