Неустранимая ошибка: Uncaught Facebook \ WebDriver \ Exception \ UnknownServerException: истекло время ожидания запуска сервера драйверов с ChromeDriver и Selenium - PullRequest
0 голосов
/ 11 октября 2018

Чего ты пытаешься достичь?(Ожидаемое поведение)

Я пытаюсь заставить файл example.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:114\nStack 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

Как можно воспроизвести проблему?(Шаги для воспроизведения)

Я использую Raspbian Stretch на Raspberry Pi Model 2 B +.У меня есть файл 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 Facebook\WebDriver; 
use Facebook\WebDriver\Remote\DesiredCapabilities; 
use Facebook\WebDriver\Remote\RemoteWebDriver; 
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
  • Версия сервера Selenium: 3.14.0
  • Операционная система: Raspbian Stretch
  • Используемый браузер + версия: Chromium Browser, версия 65.0.3325.181-0 + rpt4

1 Ответ

0 голосов
/ 11 октября 2018

Это сообщение об ошибке ...

PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownServerException: Timed out waiting for driver server to start.

... означает, что экземпляру WebDriver не удалось запустить сервер драйверов .

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете следующим образом:

Поддержка Chrome v68-70

  • Вы используете Chromium Browser v65.0 , который довольно древний.

Таким образом, существует явное несоответствие между ChromeDriver v2.42 и Chrome Browser v65.0

Решение

  • Обновление ChromeDriver до текущей версии ChromeDriver v2.42 уровень.
  • Keep Chrome версия между Chrome v68-70 уровни.( в соответствии с примечаниями к выпуску ChromeDriver v2.42 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая Веб-клиент версия устарела, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию Web Client .
  • Выполните @Test.
...