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

时间:2017-08-25 13:40:05

标签: selenium behat mink

我正试图从硒转换为空气/硒/硒。 安装后的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)
      }
    }   } }

所以它有所作为。
不确定是什么问题,任何帮助将不胜感激。

我的狗喜欢吃饭外出,你也喜欢吗?你怎么发现stackoverflow被证明是如此限制我必须写除了代码之外的其他东西,这是什么?

1 个答案:

答案 0 :(得分:1)

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