网页没有使用java打开使用selenium的chrome

时间:2017-10-08 18:17:41

标签: selenium selenium-webdriver selenium-chromedriver

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: unable to discover open page

浏览器正在打开,但所需的网页未打开&浏览器在5秒内关闭。 在此之后,异常显示在IDE中。 附上浏览器This is how the browser looks when it opened

的屏幕截图

尝试卸载(也删除了用户数据)&重新安装chrome,但是没有工作:(

使用 JDK 8,

selenium 3.6.0 for Java,

chrome browser-latest version,

镀铬驱动程序 - 不确定(可能是2.31)

我的代码

package newPackage;

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

  public class MyClass {
        public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\ChromeDriver_Selenium\\chromedriver.exe"); 

        WebDriver driver=new ChromeDriver(); 
        driver.get("http://google.com"); 
  }
}

OUTPUT我看到了

Starting ChromeDriver (v2.3) on port 20165
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages
  (Driver info: chromedriver=2.3,platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 20.55 seconds
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T16:15:26.402Z'
System info: host: 'DESKTOP-9KFNBI3', ip: '192.168.0.104', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
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:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    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:359)
    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:362)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:136)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:586)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:217)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:140)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at newPackage.MyClass.main(MyClass.java:10)

5 个答案:

答案 0 :(得分:0)

问题可能是由于您的Chrome驱动程序。
获取Chrome驱动程序并在代码中设置路径并再次尝试使用您的代码。让我知道您是否能够克服此问题。

使用以下链接获取最新版本的chrome驱动程序(2.33)
来自谷歌: https://sites.google.com/a/chromium.org/chromedriver/downloads
[OR]
来自Selenium下载: http://www.seleniumhq.org/download/

答案 1 :(得分:0)

经过一些实验,我同意确保chromedriver可执行文件在您的路径上。您可能会发现系统属性的设置可能是不必要的。

答案 2 :(得分:0)

我的代码中没有看到任何此类错误。

您观察到的错误是由于Versioning不匹配造成的。您正在使用Selenium v3.6.0chromedriver v2.3(这是相当古老的)并且不兼容。

解决方案:

当您使用最新版本的Selenium,即v3.6.0时,我建议您使用chromedriver v2.32或最新的chromedriver v2.33

答案 3 :(得分:0)

您使用的是旧版ChromeDriver,因此它与Selenium jar 3.6.0和浏览器不兼容,使用更新的ChromeDriver并解决了这些问题。

当您的ChromeDriver不支持浏览器时,会出现此问题。从此Link下载最新的ChromeDriver。

您可以降低适用于ChromeDriver 2.31

的Chrome浏览器

答案 4 :(得分:0)

将Chrome驱动程序更新为最新版本