无法打开连接:未定义索引:状态(selenoid、behat、mink)

Could not open connection: Undefined index: status (selenoid, behat, mink)

我正在尝试从 selenium 切换到 aerokube/selenoid。 Selenium 以下设置有效:

version: '2.1'
services:

  hub:
    image: selenium/hub:2.53.0
    ports:
      - "4444:4444"
    networks:
      - default

  browser0:
    image: selenium/node-firefox-debug:2.53.0
    ports:
      - "5555"
    environment:
      SE_OPTS: '-log $PWD/logs/selenium-logs'
    networks:
      - default
    depends_on:
        - hub
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
      - no_proxy=localhost

我尝试以下 selenoid 设置:

version: '3'
services:

  selenoid:
    image: selenoid/vnc:firefox_53.0
    network_mode: bridge
    ports:
      - "4444:4444"
    volumes:
      - ".:/etc/selenoid"
      - "/var/run/docker.sock:/var/run/docker.sock"

  selenoid-ui:
    image: aerokube/selenoid-ui
    network_mode: bridge
    links:
      - selenoid
    ports:
      - "8080:8080"
    command: ["--selenoid-uri", "http://selenoid:4444"]

失败 Could not open connection: Notice: Undefined index: status in /ProjectPath/vendor/instaclick/php-webdriver/lib/WebDriver/AbstractWebDriver.php line 139 (Behat\Mink\Exception\DriverException)

源代码如下:

// if not success, throw exception
    if ((int) $result['status'] !== 0) {
        throw WebDriverException::factory($result['status'], $message);
    }

当我 var_dump($result);die;:

array(1) {   ["value"]=>   array(2) {
    ["sessionId"]=>
    string(36) "20c829fa-7f73-45a5-b440-8a3282b4feea"
    ["capabilities"]=>
    array(12) {
      ["acceptInsecureCerts"]=>
      bool(false)
      ["browserName"]=>
      string(7) "firefox"
      ["browserVersion"]=>
      string(6) "55.0.1"
      ["moz:accessibilityChecks"]=>
      bool(false)
      ["moz:processID"]=>
      int(35)
      ["moz:profile"]=>
      string(33) "/tmp/rust_mozprofile.BdIIDrRL7KKu"
      ["pageLoadStrategy"]=>
      string(6) "normal"
      ["platformName"]=>
      string(5) "linux"
      ["platformVersion"]=>
      string(14) "3.16.0-4-amd64"
      ["rotatable"]=>
      bool(false)
      ["specificationLevel"]=>
      int(0)
      ["timeouts"]=>
      array(3) {
        ["implicit"]=>
        int(0)
        ["pageLoad"]=>
        int(300000)
        ["script"]=>
        int(30000)
      }
    }   } }

所以它做了一些事情。
不确定是什么问题,任何帮助将不胜感激。

我的狗喜欢吃东西和出去玩,你的也是吗?您怎么发现 Whosebug 竟然如此受限,我不得不编写除代码之外的其他内容,这是什么?

此错误应该仅在最新的 Firefox 版本中重现(例如 53.054.055.0)- 其余的都应该有效。这是因为这些版本的浏览器图像使用直接代理到遵循 W3C Selenium 协议 specification starting from release 0.16.0 的 Geckodriver。此规范与以前支持的 Selenium 版本相比 JSON 交换格式有点不同。因此,为了解决此问题 您只需将 PHP Selenium 客户端更新到支持新格式的最新版本。不确定具体版本,但例如对于 Java 它应该从版本 3.4.0.

开始工作