2017-08-15 106 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