1

What are you trying to achieve? (Expected behavior)

I am trying to get the example.php to run successfully with no errors.

What do you get instead? (Actual behavior)

I get an error 500 and the following error in the log:

[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

How could the issue be reproduced? (Steps to reproduce)

I am using Raspbian Stretch on a Raspberry Pi Model 2 B+. I have the selenium jar file installed in the same directory as the PHP webdriver client (installed via Composer) and the jar file seems to run fine on port 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();

I believe that chromedriver is the source of the problem, although I don't understand how as I installed it correctly using the command

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/;

and then again in the same selenium directory, to no avail.

Information:

  • Php-webdriver version: 1.6.0
  • PHP version: 7.0.30-0+deb9u1
  • Selenium server version: 3.14.0
  • Operating system: Raspbian Stretch
  • Browser used + version: Chromium Browser, version 65.0.3325.181-0+rpt4
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
Jonny Drift
  • 53
  • 1
  • 12

1 Answers1

2

This error message...

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

...implies that the WebDriver instance was unable to start the driver server.

Your main issue is the incompatibility between the version of the binaries you are using as follows:

  • You are using chromedriver=2.42 from https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip
  • Release Notes of chromedriver=2.42 clearly mentions the following :

Supports Chrome v68-70

  • You are using Chromium Browser v65.0 which is pretty ancient.

So there is a clear mismatch between the ChromeDriver v2.42 and the Chrome Browser v65.0

Solution

  • Upgrade ChromeDriver to current ChromeDriver v2.42 level.
  • Keep Chrome version between Chrome v68-70 levels. (as per ChromeDriver v2.42 release notes)
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
  • Execute your @Test.
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352