无法打开连接:未定义索引:状态(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.0
、54.0
或 55.0
)- 其余的都应该有效。这是因为这些版本的浏览器图像使用直接代理到遵循 W3C Selenium 协议 specification starting from release 0.16.0 的 Geckodriver。此规范与以前支持的 Selenium 版本相比 JSON 交换格式有点不同。因此,为了解决此问题 您只需将 PHP Selenium 客户端更新到支持新格式的最新版本。不确定具体版本,但例如对于 Java 它应该从版本 3.4.0
.
开始工作
我正在尝试从 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.0
、54.0
或 55.0
)- 其余的都应该有效。这是因为这些版本的浏览器图像使用直接代理到遵循 W3C Selenium 协议 specification starting from release 0.16.0 的 Geckodriver。此规范与以前支持的 Selenium 版本相比 JSON 交换格式有点不同。因此,为了解决此问题 您只需将 PHP Selenium 客户端更新到支持新格式的最新版本。不确定具体版本,但例如对于 Java 它应该从版本 3.4.0
.