我正试图从硒转换为空气/硒/硒。 安装后的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被证明是如此限制我必须写除了代码之外的其他东西,这是什么?
答案 0 :(得分:1)
此错误应仅在最新的Firefox版本中重现(例如53.0
,54.0
或55.0
) - 其他所有版本都应该有效。这是因为这些版本的浏览器图像使用直接代理Geckodriver,它遵循从specification开始的W3C Selenium协议release 0.16.0。此规范与以前的Selenium版本支持的JSON交换格式略有不同。因此,为了解决此问题,您只需将PHP Selenium客户端更新为支持新格式的最新版本即可。不确定具体版本,但例如对于Java,它应该从版本3.4.0
开始工作。