2017-01-10 144 views
1

我有一個Google Chrome 55.0.2883.87 mselenium.version 3.0.1。總部設在C:\Program Files (x86)\Google\Chrome\ApplicationSelenium chromedriver 2.27.440174不運行谷歌瀏覽器55.0.2883.87 m

POM文件

Chrome.exe

<selenium.version>3.0.1</selenium.version> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>${selenium.version}</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver --> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-remote-driver</artifactId> 
     <version>${selenium.version}</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver --> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-chrome-driver</artifactId> 
     <version>${selenium.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-firefox-driver</artifactId> 
     <version>${selenium.version}</version> 
    </dependency> 

我運行代碼

WebDriver driver = new ChromeDriver(); 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    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(); 

而且有錯誤

Starting ChromeDriver 2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9) on port 18032 
Only local connections are allowed. 
янв 10, 2017 12:18:56 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
Starting ChromeDriver 2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed) on port 9515 
Only local connections are allowed. 
[0.003][SEVERE]: bind() returned an error: Only one usage of each socket address (protocol/network address/port) is normally permitted. (0x2740) 
янв 10, 2017 12:19:56 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Detected dialect: OSS 
Exception in thread "main" org.openqa.selenium.NoSuchSessionException: no such session 
    (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 20 milliseconds 
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700' 
System info: host: 'EPRUMOSL15047', ip: '192.255.10.140', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_65' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
Capabilities [{message=chrome not reachable 
    (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 6.1.7601 SP1 x86_64), platform=ANY}] 
Session ID: 3506210c8a0eb0d3b9abfdb238547455 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635) 
    at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:322) 
    at utils.Main.main(Main.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

Process finished with exit code 1 

我也嘗試了版本,並獲得錯誤

  1. 谷歌瀏覽器55.0.2883.87米64位
  2. 谷歌瀏覽器54
  3. 谷歌瀏覽器53 x64和x86
  4. 谷歌瀏覽器51 x64和x86

告訴我可能是什麼原因?

回答

2

當Chrome可執行文件找不到時,我得到NoSuchSessionException;實際上{message=chrome not reachable似乎只是表明了這一點。

我在同一位置的Chrome exe文件,你(55.0.2883.87 mC:\Program Files (x86)\Google\Chrome\Application\chrome.exe版本,ChromeDriver v2.25,硒3.0.1,在Windows 8.1),並在我的情況的exe文件的,而無需指定其路徑中找到(它是「默認位置「,請參閱here),所以我希望它也可以在您的案例中找到,但我的測試不使用pom文件或Maven。

您可以嘗試明確設置Chrome的路徑,你可以看到here使用的Chrome非標準位置可執行文件,如果有的話,以排除可執行文件的路徑爲病因。那將是:

ChromeOptions options = new ChromeOptions(); 
options.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"); 
ChromeDriver browser = new ChromeDriver(options);