【问题标题】:RemoteWebDriver throws "org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session"RemoteWebDriver 抛出“org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话”
【发布时间】:2017-12-19 04:36:04
【问题描述】:

我正在尝试从集线器到节点运行一个简单的代码,集线器和节点连接成功。

执行程序时出现异常

org.openqa.selenium.SessionNotCreatedException

我提到的Chrome驱动路径是可以从节点机器访问的共享路径。

  • Chrome 版本:58.0.3029.110
  • Chrome 驱动程序版本:2.9

Hub 和 Node 都是远程机器。

下面是使用的代码:

public static void main(String[] args) throws MalformedURLException {

    WebDriver driver;
    System.setProperty("webdriver.chrome.driver", "Q:\\xxxxx\\chromedriver.exe");
    DesiredCapabilities dc = new DesiredCapabilities();
    dc.setBrowserName("chrome");
    dc.setPlatform(Platform.VISTA);
    driver = new RemoteWebDriver(new URL("http://10.xx.xxx.xx:5566/wd/hub"), dc); //node url
    driver.get("https://www.google.com");

}

以下是控制台消息:

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, platform=VISTA}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'A5DAFC-W7A-0012', ip: '10.xx.xxx.xx', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_131'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
    at testcases.Grid.main(Grid.java:23)

【问题讨论】:

  • 错误SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, platform=VISTA}] 说明了一切。你能分享你用来启动 Hub & Node 的命令吗?谢谢
  • 当然感谢您的回复。集线器命令:java -jar selenium-server-standalone-3.4.0.jar -role hub -port 4123 节点命令:java -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub 10.xx.xxx.xx:4123/grid/register -port 5566
  • 使用RemoteWebDriver 连接到集线器时,System.setProperty() 调用是多余的。

标签: java selenium selenium-webdriver selenium-chromedriver selenium-grid


【解决方案1】:

这是您问题的答案:

正如您使用以下命令启动 Selenium Grid Hub

 java -jar selenium-server-standalone-3.4.0.jar -role hub -port 4123

要通过chromedriver.exeGoogle Chrome 浏览器执行您的代码块,您可以考虑通过以下命令在端口5566 上启动Selenium Grid Node

java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://localhost:4123/grid/register -port 5566

通过 &lt;IP_of_GridHub&gt;:4123/grid/console 访问 Selenium Grid Hub 控制台以查看正在注册的节点。

如果这能回答您的问题,请告诉我。

【讨论】:

    【解决方案2】:

    进入环境变量,设置系统变量为"JAVA_HOME" C:\Program Files\Java\jdk1.8.0_301,这样就可以解决这个问题了。

    【讨论】:

      猜你喜欢
      • 2017-08-01
      • 1970-01-01
      • 2016-11-13
      • 2017-06-26
      • 2017-02-27
      • 1970-01-01
      • 2017-03-03
      • 2020-07-28
      • 2017-09-10
      相关资源
      最近更新 更多