致命错误:未捕获的 Facebook\WebDriver\Exception\UnknownServerExcep



你想实现什么?(预期行为(

我正在尝试获取示例.php成功运行而没有错误。

你会得到什么?(实际行为(

我在日志中收到错误 500 和以下错误:

[Wed Oct 10 19:46:41.597926 2018] [:error] [pid 3951] [client 162.158.38.241:62198] 
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownServerException: Timed out waiting for driver server to start.n
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'n
System info: host: 'raspberrypi', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'arm', os.version: '4.14.70-v7+', java.version: '1.8.0_181'n
Driver info: driver.version: unknown in /var/www/html/selenium/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:114nStack trace:n
#0 /var/www/html/selenium/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php(326): Facebook\WebDriver\Exception\WebDriverException::throwException(13, 'Timed out waiti...', Array)n
#1 /var/www/html/selenium/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php(126): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebDriver\Remote\WebDriverCommand))n
#2 /var/www/html/selenium/index.php(21): Facebook\WebDriver\Remote\RemoteWebDriver::create('http://localhos...', Object(Facebook\WebDriver\Remote\DesiredCapabiliti in /var/www/html/selenium/vendor/facebook/webdriver/lib/Exception/WebDriverException.php on line 114

如何重现该问题?(重现步骤(

我在Raspberry Pi Model 2 B +上使用Raspbian Stretch。我将硒 jar 文件安装在与 PHP 网络驱动程序客户端(通过 Composer 安装(相同的目录中,并且 jar 文件似乎在端口 4444 上运行良好。

<?php // An example of using php-webdriver. 
// Do not forget to run composer install before and also have Selenium server started and listening on port 4444. 
namespace FacebookWebDriver; 
use FacebookWebDriverRemoteDesiredCapabilities; 
use FacebookWebDriverRemoteRemoteWebDriver; 
require_once('vendor/autoload.php'); 
// start Chrome with 5 second timeout 
$host = 'http://localhost:4444/wd/hub'; 
// this is the default 
$capabilities = DesiredCapabilities::chrome(); 
$driver = RemoteWebDriver::create($host, $capabilities, 5000); 
// navigate to 'http://www.seleniumhq.org/' 
$driver->get('https://www.seleniumhq.org/'); 
// adding cookie 
$driver->manage()->deleteAllCookies(); 
$cookie = new Cookie('cookie_name', 'cookie_value'); 
$driver->manage()->addCookie($cookie); 
$cookies = $driver->manage()->getCookies(); 
print_r($cookies); 
// click the link 'About' 
$link = $driver->findElement( WebDriverBy::id('menu_about') ); 
$link->click(); 
// wait until the page is loaded 
$driver->wait()->until( WebDriverExpectedCondition::titleContains('About') ); 
// print the title of the current page 
echo "The title is '" . $driver->getTitle() . "'n"; 
// print the URI of the current page 
echo "The current URI is '" . $driver->getCurrentURL() . "'n"; 
// write 'php' in the search box 
$driver->findElement(WebDriverBy::id('q')) ->sendKeys('php') 
// fill the search 
box ->submit(); 
// submit the whole form 
// wait at most 10 seconds until at least one result is shown 
$driver->wait(10)->until( 
WebDriverExpectedCondition::presenceOfAllElementsLocatedBy(WebDriverBy::className('gsc-result')) 
); 
// close the browser 
$driver->quit();

我相信chromedriver是问题的根源,尽管我不明白如何使用命令正确安装它

wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip 
&& sudo unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/;

然后再次在同一个硒目录中,无济于事。

信息:

  • Php-webdriver 版本: 1.6.0
  • PHP 版本: 7.0.30-0+deb9u1
  • 硒服务器版本:3.14.0
  • 操作系统:Raspbian Stretch
  • 使用的浏览器 + 版本:铬浏览器,版本 65.0.3325.181-0+rpt4

此错误消息...

PHP Fatal error: Uncaught FacebookWebDriverExceptionUnknownServerException: Timed out waiting for driver server to start.

。表示WebDriver实例无法启动驱动程序服务器

您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

  • 您正在使用chromedriver=2.42https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip
  • chromedriver=2.42的发行说明明确提到了以下内容:

支持铬 v68-70

  • 您正在使用非常古老的Chromium浏览器v65.0

因此,ChromeDriver v2.42和Chrome浏览器v65.0之间存在明显的不匹配

溶液

  • ChromeDriver升级到当前的ChromeDriver v2.42级别。
  • 将 Chrome版本保持在 Chrome v68-70级别之间。(根据ChromeDriver v2.42发行说明(
  • 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
  • 如果您的基本 Web 客户端版本太旧,请通过Revo 卸载程序将其卸载,并安装最新的 GA 和已发布版本的Web 客户端
  • 执行您的@Test

相关内容

最新更新