Clone this wiki locally

Example command reference

Overview

Here is my attempt at helping others learn to use this binding. Others out there who are more experienced with this PHP binding, please add to this page as you get to it please.

Working with elements

NOTE: some examples below may be done shorthand, in single line chained calls from the session object, though if we wanted to perform several actions on the same element, we could save the WebDriverElement into a variable and then make subsequent calls from that element.

Windows

Maximize the browser window

Executing JavaScript

Synchronous script execution

Remember that the script you run is implicitly inserted into an anonymous javascript function.
That means if you want to access global variables, you have to use the full name of the variable,
for example window.document

Simple example

More complex example

In the example below, we poll the global window.MY_STUFF_DONE value at regular intervals,
waiting for it to exist with a non-false value. Once we see it, we return back to the
calling php-webdriver code with the value "done".

Take a screenshot

Drag And Drop

Drag and Drop from one element to another

//this requires a sequence of steps as follows:
//1st find the source and target/destination elements to use as reference to do the drag and drop
$from = $session->element('xpath',"//div[@class='here']");
$to = $session->element('id','there');
//now perform drag and drop
$session->moveto(array('element' => $from->getID())); //move to source location, using reference to source element
$session->buttondown(""); //click mouse to start drag, defaults to left mouse button
$session->moveto(array('element' => $to->getID())); //move to target location, using reference to target element
$session->buttonup(""); //release mouse to complete drag and drop operation
//it may be worthwhile to encapsulate these steps into a function called draganddrop($src,$target), etc.

Window handling

Getting current window handle

$handle = $session->window_handle();

Getting all window handles as array

$handles = $session->window_handles(); //now can iterate through array to get desired handle

Switching to window

See project home page or the readme file for examples

Closing a window

See project home page or the readme file for examples

Switching frames

// Open URL
$session->open('http://www.facebook.com/cocacola');
// Grab hold of the ID of your iframe
$id = $session->element('xpath', "//div[@id='pagelet_app_runner']//iframe")->attribute('id');
// Switch frames using that ID
$session->frame(array('id'=>$id));
// Output the HTML so we can see the right frame was selected
echo $session->source();
// Do element queries as normal
var_dump($session->element('id', "bottom]")->displayed());

Switch Frame With the updated bindings

//Find an iframe
$iframe = $session->findElement(WebDriverBy::tagName('iframe));
//Get the iframe id
$frameId = $iframe->getAttribute('id');
//Switch the driver to the iframe
$session->switchTo()->frame($frameId);
<Do whatever you needed to do in the i-frame (click a link, for me)>
//Go back to the main document
$session->switchTo()->defaultContent();