【问题标题】:unable to Launch Selenium Script in Grid无法在网格中启动 Selenium 脚本
【发布时间】:2017-08-24 11:41:46
【问题描述】:

我已经通过运行命令启动了 selenium 服务器集线器: java -jar selenium-server-standalone-3.4.jar -port 4444 -role hub

我还通过运行以下命令连接了节点:java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580

在网格控制台中显示 v:null(不知道为什么?)。

我在下面运行 selenium 的代码:

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

    String URL = "http://www.DemoQA.com";
    String Node = "http://localhost:4444/wd/hub";
    DesiredCapabilities cap = DesiredCapabilities.firefox();
    cap.setBrowserName("firefox");
    cap.setPlatform(Platform.WIN10);


    driver = new RemoteWebDriver(new URL(Node), cap);

    driver.navigate().to(URL);
    Thread.sleep(5000);
    driver.quit();
}

`

gettinf 这些错误,请有人帮忙解决这些问题?

非常感谢 adc

【问题讨论】:

标签: selenium-webdriver automation selenium-grid


【解决方案1】:

网格控制台显示没有 Firefox 实例是您面临的问题。您的节点似乎有问题。

检查节点注册命令。

java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser browserName=firefox,platform=WINDOWS,maxInstances=2

尝试在命令中删除browserName 之前的-

【讨论】:

    【解决方案2】:

    错误消息Error forwarding the new session cannot find 是网格告诉您无论您请求什么,集线器都找不到任何支持该功能的节点的方式。

    在你的情况下,当你这样做时

    DesiredCapabilities cap = DesiredCapabilities.firefox();
    cap.setBrowserName("firefox");
    cap.setPlatform(Platform.WIN10);
    

    您基本上是在告诉集线器,您需要一个可以支持名称为 firefox 的浏览器的节点,并且该节点应该在 Windows 10 操作系统上运行。

    但是在你的节点启动命令中,你使用了这个

    java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580
    

    这意味着您向 Hub 注册了一个支持 firefox 浏览器的节点,但您从未提及有关该平台的任何内容。因此该节点假定平台为“任意”。

    现在,当您创建一个新的 RemoteWebDriver 实例时,Hub 尝试将请求的功能与每个节点的可用功能进行匹配。由于它没有找到任何在 Windows 10 上运行并支持 firefox 的节点(请记住,您只有一个支持 firefox 且未设置平台的节点),匹配失败,因为“ANY”与“WIN10”不匹配。

    要解决此问题,请删除cap.setPlatform(Platform.WIN10); 行并重试。

    PS: DesiredCapabilities cap = DesiredCapabilities.firefox();这一行已经算出了浏览器名称,所以你不需要通过cap.setBrowserName("firefox");显式设置浏览器名称

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2017-07-09
      • 1970-01-01
      • 2016-02-01
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多