让 WebDriver 与 Firefox 一起工作
Getting WebDriver working with Firefox
在 Vagrant 中使用 Laravel 5+。
我有硒运行宁使用:
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox"
使用无头显示:
sudo Xvfb :10 -ac
然而当我 运行 codeception:
./vendor/bin/codecept run selenium --steps
我收到以下错误:
[Facebook\WebDriver\Exception\UnknownServerException] Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: GDK_BACKEND does not match available displays
我对应该使用的服务器和端口感到困惑。
目前我通过 http://localhost:8000
访问网站
但是那是在流浪者之外。
我观察$url = 'http://localhost:4444/wd/hub'
,里面api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php
作为错误输出:
127.0.0.1 on port 7055.
实际上,当您 运行 selenium-server-standalone.jar
时,您应该下载最新的 geckodriver from here 并使用从系统下载的壁虎驱动程序路径设置 属性 Dwebdriver.gecko.driver
,如下所示:
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox" -Dwebdriver.gecko.driver = "path/to/downloaded geckodriver
注意 :就像其他浏览器供应商 Selenium
提供的其他驱动程序一样,Mozilla
发布了一个可执行文件 geckodriver
运行 以及最新的 firefox 浏览器。如需更多信息,您应该 follow this link.
现在您需要在 api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php
中初始化 RemoteWebDriver
期间将 marionette
的功能设置为 true
为:
$capabilities->setCapability('marionette', true);
完整示例代码:
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability('marionette', true);
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
切换到 chrome 网络驱动程序,不那么复杂,更兼容,对我来说工作得很好。
- 下载chrome webdriver 或 composer require
设置环境
nohup sudo Xvfb :10 -ac &
导出显示=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"
在 Vagrant 中使用 Laravel 5+。
我有硒运行宁使用:
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox"
使用无头显示:
sudo Xvfb :10 -ac
然而当我 运行 codeception:
./vendor/bin/codecept run selenium --steps
我收到以下错误:
[Facebook\WebDriver\Exception\UnknownServerException] Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: Error: GDK_BACKEND does not match available displays
我对应该使用的服务器和端口感到困惑。
目前我通过 http://localhost:8000
访问网站
但是那是在流浪者之外。
我观察$url = 'http://localhost:4444/wd/hub'
,里面api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php
作为错误输出:
127.0.0.1 on port 7055.
实际上,当您 运行 selenium-server-standalone.jar
时,您应该下载最新的 geckodriver from here 并使用从系统下载的壁虎驱动程序路径设置 属性 Dwebdriver.gecko.driver
,如下所示:
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.firefox.bin="/usr/bin/firefox" -Dwebdriver.gecko.driver = "path/to/downloaded geckodriver
注意 :就像其他浏览器供应商 Selenium
提供的其他驱动程序一样,Mozilla
发布了一个可执行文件 geckodriver
运行 以及最新的 firefox 浏览器。如需更多信息,您应该 follow this link.
现在您需要在 api\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php
中初始化 RemoteWebDriver
期间将 marionette
的功能设置为 true
为:
$capabilities->setCapability('marionette', true);
完整示例代码:
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability('marionette', true);
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
切换到 chrome 网络驱动程序,不那么复杂,更兼容,对我来说工作得很好。
- 下载chrome webdriver 或 composer require
设置环境
nohup sudo Xvfb :10 -ac &
导出显示=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"