首页 > 解决方案 > org.openqa.grid.common.exception.GridException:在请求中找不到功能:{“capabilities”:{“browserName”:“Firefox”}}使用Selenium Grid

问题描述

我有一个 Selenium 3.13 网格正在运行:

集线器启动:

/opt/selenium/jre/bin/java -Dwebdriver.firefox.driver=/usr/local/bin/geckodriver -jar /opt/selenium/server/selenium-server-standalone-3.13.0.jar  -host 192.168.109.218 -role hub

节点启动:

/opt/selenium/jre/bin/java -Dwebdriver.firefox.driver=/usr/local/bin/geckodriver -jar /opt/selenium/server/selenium-server-standalone-3.13.0.jar -role node -hub http://192.168.109.218:4444/grid/register -port 4445 -browser browserName=Firefox

我希望通过以下 curl 命令使用 /wd/hub/session API 创建一个新会话:

curl -X POST "http://192.168.109.218:4444/wd/hub/session" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{  \"Capabilities\": {    \"alwaysMatch\": {      \"browserName\": \"Firefox\",    }  }}"

我不断收到这个错误:

2021-02-05 14:28:34.284:WARN:osjs.HttpChannel:qtp902919927-14: /wd/hub/session java.io.IOException: org.openqa.grid.common.exception.GridException: No capabilities found in request: {
    "capabilities": {
        "browserName": "Firefox"
    }
}

我已经尝试了各种 java(openjdk 和 oracle java)以及最近的 Seleniu 3.9 组合。我查看了文档,没有看到任何我应该添加或更改的内容,但我倾向于问题在于我的能力论点。

谁能指出我正确的方向,或者快速地用“你是个白痴,这是简单的解决方法”的话扇我一巴掌?

标签: seleniumselenium-webdriverfirefoxselenium-gridgeckodriver

解决方案


webdriver.firefox.driver而不是传递你需要传递的参数:

webdriver.gecko.driver

实际上,启动命令将是:

  • 中心:

    /opt/selenium/jre/bin/java -Dwebdriver.gecko.driver=/usr/local/bin/geckodriver -jar /opt/selenium/server/selenium-server-standalone-3.13.0.jar -host 192.168.109.218 -role hub
    
  • 节点:

    /opt/selenium/jre/bin/java -Dwebdriver.gecko.driver=/usr/local/bin/geckodriver -jar /opt/selenium/server/selenium-server-standalone-3.13.0.jar -role node -hub http://192.168.109.218:4444/grid/register -port 4445 -browser browserName=Firefox
    

推荐阅读