Selenium - WebDriver

Selenium WebDriver is the most recent version of Selenium which you should use for your automated tests.

You can find more info about WebDriver on Selenium's Documentation page.


Below are some examples on how to use this new protocol with our TestingBot grid.

Ruby and Selenium WebDriver

  • Install the webdriver gem
    $ gem install selenium-webdriver
  • Replace API_KEY and API_SECRET with your key and secret, which you can find in the Member area

Code example
#!/usr/bin/env ruby

require 'rubygems'
require 'selenium-webdriver'

caps = Selenium::WebDriver::Remote::Capabilities.firefox
caps.version = "8"
caps.platform = :WINDOWS

driver = Selenium::WebDriver.for(
  :remote,
  :url => "https://API_KEY:API_SECRET@hub.testingbot.com:4444/wd/hub",
  :desired_capabilities => caps)
driver.navigate.to "http://www.google.com"
element = driver.find_element(:name, 'q')
element.send_keys "Hello WebDriver!"
element.submit
puts driver.title
driver.quit

Python and Selenium WebDriver

  • Install WebDriver
    $ easy_install -U selenium
  • Replace API_KEY and API_SECRET with your key and secret, which you can find in the Member area

Code example
import unittest
from selenium import webdriver
from testingbot import driver

class Selenium2Test(unittest.TestCase):
    def setUp(self):
        desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
        desired_capabilities['version'] = '8'
        desired_capabilities['platform'] = 'WINDOWS'

        self.driver = webdriver.Remote(
            desired_capabilities=desired_capabilities,
            command_executor="http://API_KEY:API_SECRET@hub.testingbot.com:4444/wd/hub"
        )

    def test_google(self):
        self.driver.get('http://www.google.com')
        assert "Google" in self.driver.title

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

PHP and selenium webdriver

<php

require_once __DIR__ . '/php-webdriver/__init__.php';

class WebdriverTest extends PHPUnit_Framework_TestCase
{
 	/**
    * @var WebDriverSession
    */
    protected $_session;

    public function setUp()
    {
        parent::setUp();
        $web_driver = new WebDriver("https://api_key:api_secret@hub.testingbot.com:4444/wd/hub");
        $this->_session = $web_driver->session("firefox", array('platform' => "WINDOWS", "version" => "latest"));
    }

    public function tearDown()
    {
		$parts = explode("/", $this->_session->getURL());
		$sessionID = $parts[sizeof($parts) - 1];

		$data = array(
			'session_id' => $sessionID,
			'client_key' => "api_key",
			'client_secret' => "api_secret",
			'test[status_message]' => $this->getStatusMessage(),
			'test[success]' => !$this->hasFailed(),
			'test[name]' => $this->toString()
		);

		$this->apiCall($data);

        $this->_session->close();
        unset($this->_session);
        parent::tearDown();
    }

    public function testTitle()
    {
    	$this->_session->open('http://www.google.com/');
    }

    protected function apiCall(array $postData)
    {
		$data = http_build_query($postData);
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, "https://api.testingbot.com/v1/tests/" . $postData['session_id']);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_USERPWD, $postData['client_key'] . ":" . $postData['client_secret']);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        $response = curl_exec($curl);
		curl_close($curl);
    }
}

Java and Selenium webdriver

  • Install the webdriver at Google code
  • Replace API_KEY and API_SECRET with your key and secret, which you can find in the Member area

Code example
import org.openqa.selenium.*;
import org.openqa.selenium.remote.*;
import java.net.URL;

public class Test {
    public static void main(String[] args) throws Exception {

        DesiredCapabilities capabillities = DesiredCapabilities.firefox();
        capabillities.setCapability("version", "latest");
        capabillities.setCapability("platform", Platform.WINDOWS);

        WebDriver driver = new RemoteWebDriver(
           new URL("http://API_KEY:API_SECRET@hub.testingbot.com:4444/wd/hub"),
           capabillities);

        driver.get("http://www.google.com");
        WebElement search = driver.findElement(By.name("q"));
        search.sendKeys("Hello, WebDriver");
        search.submit();
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

C# and Selenium webdriver

using NUnit.Framework;
using System;
using Selenium;
using System.Web;
using System.Text;
using System.Net;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace Test
{
	[TestFixture()]
	public class Test
	{
		private IWebDriver driver;

        [SetUp]
        public void Init()
        {
            DesiredCapabilities capabillities = DesiredCapabilities.Firefox();
            capabillities.SetCapability(CapabilityType.Version, "8");
			capabillities.SetCapability("api_key", "REPLACE_API_KEY");
            capabillities.SetCapability("api_secret", "REPLACE_API_SECRET");

            driver = new RemoteWebDriver(
                new Uri("https://hub.testingbot.com:4444/wd/hub/"), capabillities);
        }

        [Test]
        public void TestCase()
        {
            driver.Navigate().GoToUrl("http://www.google.com");
            StringAssert.Contains("Google", driver.Title);
        }

        [TearDown]
        public void Cleanup()
        {
            driver.Quit();
        }
	}
}