Using the Selenium Web Driver API with PHPUnit
Previously, we demonstrated using Selenium with PHPUnit and used a user subscription form example throughout the article. In this one, we are going to explore the Facebook package using the web driver API implementation.
It is recommended you go through the previous article first, as it covers some basic concepts mentioned in this one, and sets up the sample application for you.
Let’s get started.
Facebook WebDriver API Implementation
PHPUnit partially supports the Selenium WebDriver API and the work is still in progress. One of the most popular WebDriver API implementations is the Facebook/webdriver package. We will try to accomplish the same validation tests from the previous article using this package. Let’s start by installing:
composer require facebook/webdriver --dev
Then, we create the file:
// tests/acceptance/UserSubscriptionTestFB.php
class UserSubscriptionTestFB extends PHPUnit_Framework_TestCase
{
/**
* @var RemoteWebDriver
*/
protected $webDriver;
}
The RemoteWebDriver
class is responsible for handling all interactions with the Selenium server. We use the create
method to create a new instance.
// tests/acceptance/UserSubscriptionTestFB.php
public function setUp()
{
$this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::firefox());
}
The first parameter is the Selenium server host address, and it defaults to http://localhost:4444/wd/hub
. The second parameter notes the desired capabilities. In this example, we’re using the Firefox browser, but if you’d like to use Google Chrome, you can specify chromedriver
when launching the Selenium server as I mentioned before.
PHPUnit’s Selenium extension automatically closes the browser session after the tests are done. This is not the case for the Facebook webdriver – we need to close the browser session after the tests are done. We do that inside the tearDown
method.
Continue reading %Using the Selenium Web Driver API with PHPUnit%
LEAVE A REPLY
You must be logged in to post a comment.