Selenium webdriver 远程WebDriver无法访问BrowserException:无法启动新会话

Selenium webdriver 远程WebDriver无法访问BrowserException:无法启动新会话,selenium-webdriver,webdriver,selenium-grid,remotewebdriver,Selenium Webdriver,Webdriver,Selenium Grid,Remotewebdriver,我在所有浏览器中都得到了这个例外。例如,我在chrome上创建了一个远程webdriver,如下所示: caps = DesiredCapabilities.chrome(); ChromeOptions options = new ChromeOptions(); options.addArguments("disable-infobars"); caps.setCapability(ChromeOptions.CAPABILITY, options); webDriver = new Rem

我在所有浏览器中都得到了这个例外。例如,我在chrome上创建了一个远程webdriver,如下所示:

caps = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
caps.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new RemoteWebDriver(new URL("http://myIP:5555/wd/hub"), caps);
我得到了如下无法访问的BrowserException:

org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
但我在
http://myIP:4444/grid/console
,一切正常,节点仍在注册中。然后在
http://myIP:5555/wd/hub/static/resource/hub.html
,我仍然可以单击“创建会话”为所有浏览器创建会话

我今天才得到这个例外,几天前它还有效。我使用的是Selenium 3.11.0、IntelliJ 2017.3,所有驱动程序和浏览器都是最新版本


我在这里搜索过,但在我的电脑还在运行的时候,我找不到解决办法。非常感谢您的帮助

错误说明了一切:

INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
调用RemoteWebDriver时Selenium的当前实现支持
ChromeOptions
,您可以使用以下代码块:

ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
webDriver = new RemoteWebDriver(new URL("http://myIP:5555/wd/hub"), options);

更新 根据您的意见,更新处的文档尚未更新。以下是来自的相关字节:

  • Selenium v3.5.0

    * Start making *Option classes instances of Capabilities. This allows
      the user to do:
      `WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
    
    * All `*Option` classes now extend `MutableCapbilities`
      `new RemoteWebDriver(new ChromeOptions());`
    
    * Migrated from using `DesiredCapabilities` to either
      `MutableCapabilities` or (preferably) `ImmutableCapabilities`.
    
  • Selenium v3.6.0

    * Start making *Option classes instances of Capabilities. This allows
      the user to do:
      `WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
    
    * All `*Option` classes now extend `MutableCapbilities`
      `new RemoteWebDriver(new ChromeOptions());`
    
    * Migrated from using `DesiredCapabilities` to either
      `MutableCapabilities` or (preferably) `ImmutableCapabilities`.
    
  • Selenium v3.7.0

    * Start making *Option classes instances of Capabilities. This allows
      the user to do:
      `WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
    
    * All `*Option` classes now extend `MutableCapbilities`
      `new RemoteWebDriver(new ChromeOptions());`
    
    * Migrated from using `DesiredCapabilities` to either
      `MutableCapabilities` or (preferably) `ImmutableCapabilities`.
    

谢谢您的回答。你的代码可以工作。但是如果你愿意回答的话,我有一些问题。1) 我只是在这里查看一下Selenium文档:,他们仍然使用DesiredCapabilities,我遵循了它,它工作了很多年,直到今天它不再工作了。2) 根据你的建议,我将其更改为ChromeOptions,它实际上可以工作,但我仍然认为“使用
新ChromeOptions()
优于
所需的功能。chrome()
.3)对于FF和IE,我也更改为FirefoxOptions()和InternetExploreOptions(),但它的工作方式与chrome不同。你能详细说明一下吗。非常感谢much@Ragnarsson查看我的答案更新,并让我知道这是否回答了您的问题。谢谢;它与新的实现一起工作。但我仍然对FF有问题。“我会调查的。”拉格纳森请随意提出一个新问题,提出你的新要求,我一定会调查的。