facebook/webdriver
Archived Selenium WebDriver bindings for PHP. Controls browsers via Selenium 2–4 using JsonWireProtocol and partial W3C WebDriver support. Install with Composer and connect to a running selenium-server. Use php-webdriver/php-webdriver for current updates.
Php-webdriver library is PHP language binding for Selenium WebDriver, which allows you to control web browsers from PHP.
This library is compatible with Selenium server version 2.x, 3.x and 4.x.
The library supports JsonWireProtocol and also implements experimental support of W3C WebDriver. The W3C WebDriver support is not yet full-featured, however it should allow to control Firefox via Geckodriver and new versions of Chrome and Chromedriver with just a slight limitations.
The concepts of this library are very similar to the "official" Java, .NET, Python and Ruby bindings from the Selenium project.
Looking for API documentation of php-webdriver? See https://facebook.github.io/php-webdriver/
Any complaints, questions, or ideas? Post them in the user group https://www.facebook.com/groups/phpwebdriver/.
Installation is possible using Composer.
If you don't already use Composer, you can download the composer.phar binary:
curl -sS https://getcomposer.org/installer | php
Then install the library:
php composer.phar require facebook/webdriver
The required server is the selenium-server-standalone-#.jar file provided here: http://selenium-release.storage.googleapis.com/index.html
Download and run the server by replacing # with the current server version. Keep in mind you must have Java 8+ installed to run this command.
java -jar selenium-server-standalone-#.jar
When creating a browser session, be sure to pass the url of your running server.
// This would be the url of the host running the server-standalone.jar
$host = 'http://localhost:4444/wd/hub'; // this is the default url and port where Selenium server starts
Install latest Chrome and Chromedriver.
The chromedriver binary must be placed in system PATH directory, otherwise you must provide the path when starting Selenium server
(eg. java -Dwebdriver.chrome.driver="/path/to/chromedriver" -jar selenium-server-standalone-#.jar).
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
Install latest Firefox and Geckodriver.
The geckodriver binary must be placed in system PATH directory, otherwise you must provide the path when starting Selenium server
(eg. java -Dwebdriver.gecko.driver="/path/to/geckodriver" -jar selenium-server-standalone-#.jar).
$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox());
$desiredCapabilities = DesiredCapabilities::firefox();
$desiredCapabilities->setCapability('acceptSslCerts', false);
$driver = RemoteWebDriver::create($host, $desiredCapabilities);
NOTE: Above snippets are not intended to be a working example by simply copy-pasting. See example.php for working example.
For latest changes see CHANGELOG.md file.
Some how-tos are provided right here in our GitHub wiki.
You may also want to check out the Selenium docs and wiki.
To take advantage of automatized testing you may want to integrate php-webdriver to your testing framework. There are some projects already providing this:
We have a great community willing to help you!
We love to have your help to make php-webdriver better. See CONTRIBUTING.md for more information about contributing and developing php-webdriver.
How can I help you explore Laravel packages today?