Automatic tests with Selenium – part #2

Testing PHP aplication is not the native task for Selenium, but thanks to facebook api developers we have a tool to make it. Facebook PHP WebDriver alows to use Selenium and even combine it with PHPUnit.

You should first read Automatic tests with Selenium – part #1.

Let’s drive

Like in the previous article, we need a Selenium server, but this time for PHP. We can get it from here. Download the newest one standalone java version and run it (the most recent at the time of writing this article is 3.3.1)

sudo wget
java -jar selenium-server-standalone-3.3.1.jar

It should be running all the time, as a single process. You will also need a PHPUnit installed on your WebSever.

So we need to create some environment for testing. We will use composer. If you don’t have it installed, do it now. Create a new directory test in your localhost web directory.

In a new terminal window type

	cd /path/to/test
	composer init

you will see a composer wizard. When it ask you for a package to search, type facebook/webdriver, like below

Welcome to the Composer config generator  

This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [root/webdriver]: 
Description []: 
Author [picios <>, n to skip]: 
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: 
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? yes               
Search for a package: facebook/webdriver
Enter the version constraint to require (or leave blank to use the latest version): facebook/webdriver

Hit empty ENTER in another Search for a package prompt and confirm generating of a new composer.json file. Now type

	composer update

Composer will take care to download the newest version of the package.

Let’s test

We need something to test, so let’s create a new html file tested_page.html in our test directory.

<!doctype html>
<html lang="en">
		<meta charset="utf-8">
		<title>The tested page</title>
		<meta name="description" content="The tested page">
		<meta name="author" content="Me">
		<!-- stylesheets assets here -->
		<h1>It works!</h1>
		<!-- scripts assets here -->

And now create a new test php file MyPageSeleniumTest.php in the same directory.


require 'vendor/autoload.php';

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverBy;

class MyPageSeleniumTest extends \PHPUnit_Framework_TestCase {

	public function testPage() {

		$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::chrome());
		$heading = $driver->findElement(WebDriverBy::tagName("h1"));
		$this->assertContains('It works', $heading->getText());

Save it. While your Selenium server is running, type in terminal

	phpunit --verbose MyPageSeleniumTest

If everything goes ok, you will see a new Chrome window with a ‘It works!’ sign. Moreover you will get your test result from PHPUnit.

	OK (1 test, 1 assertion)

0 thoughts on “Automatic tests with Selenium – part #2

  • MeShellAngelo says:

    I read both of your Selenium articles. They are pretty fast but clear. Only you should’ve mentioned, that your OS is Ubuntu. Some beginners might be confused.

  • Neoodonge says:

    Здесь вы можете заказать копию любого сайта под ключ, недорого и качественно, при этом не тратя свое время на различные программы и фриланс-сервисы.

    Клонированию подлежат сайты как на конструкторах, так и на движках:
    – Tilda (Тильда)
    – Wix (Викс)
    – Joomla (Джумла)
    – WordPress (Вордпресс)
    – Bitrix (Битрикс)
    и т.д.
    телефон 8-996-725-20-75 звоните пишите viber watsapp
    Копируются не только одностраничные сайты на подобии Landing Page, но и многостраничные. Создается полная копия сайта и настраиваются формы для отправки заявок и сообщений. Кроме того, подключается админка (админ панель), позволяющая редактировать код сайта, изменять текст, загружать изображения и документы.

    Здесь вы получите весь комплекс услуг по копированию, разработке и продвижению сайта в Яндексе и Google.

    Хотите узнать сколько стоит сделать копию сайта?
    напишите нам
    8-996-725-20-75 звоните пишите viber watsapp

  • Thank you for another excellent post. Where else
    could anyone get that type of information in such a perfect method of writing?
    I’ve a presentation next week, and I’m at the search for such info.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>