You are on page 1of 17

Beach Parasol

Don't get burned at the Seaside

Kris Gybels
2Rivers

maandag 9 september 13

maandag 9 september 13

maandag 9 september 13

maandag 9 september 13

GUI-Testing Smalltalk-AJAX/SJAX web applications with Selenium


Carsten Hrle @ ESUG 2012
maandag 9 september 13

Selenium Remote Control


Proxy server + Javascript injection

Selenium WebDriver
Native browser automation support (plugin, ...)

maandag 9 september 13

<a
id="the_link"
style="display: none"
href="http://www.wikipedia.org">
Invisible Link to Wikipedia</a>

Selenium Remote Control


selenium.click("id=the_link");

Selenium WebDriver
WebElement element = driver.findElement(By.id("the_link"));
element.click();

maandag 9 september 13

Selenium Remote Control


Selenium selenium = new DefaultSelenium("localhost", 4444,
"*firefox", "http://localhost/");
selenium.start();
selenium.open("/page.html");
selenium.click("id=the_link");

Selenium WebDriver
More Object-Oriented API
WebDriver driver = new FirefoxDriver();
driver.get("http://localhost/page.html");
WebElement element = driver.findElement(By.id("the_link"));
element.click();

maandag 9 september 13

WebDriver driver = new FirefoxDriver();


ChromeDriver
IPhoneDriver
AndroidWebDriver
HtmlUnitDriver
...
RemoteWebDriver

Network connection

WebDriver remoteDriver = ...


selenium-server-standalone-2.31.0.jar

driver := BPRemoteWebDriver new.


maandag 9 september 13

maandag 9 september 13

RemoteWebDriver
WebElementfindElementById(Stringusing)
List<WebElement>findElementsByXPath(Stringusing)
String getPageSource()
KeyboardgetKeyboard()
WebElement
StringgetAttribute(Stringname)
voidclick()
Keyboard
voidsendKeys(CharSequence...keysToSend)
Actions
ActionsdoubleClick()
ActionsdoubleClick(WebElementonElement)
maandag 9 september 13

BPRemoteWebDriver
findElementByID: idString
findElementsByXPath: xpathString
getPageSource
getKeyboard
BPWebElement
getAttribute: nameString
click
BPKeyboard
sendKeys:
BPActions
doubleClick
doubleClick:

maandag 9 september 13

maandag 9 september 13

maandag 9 september 13

Join!
Porting:
VisualWorks, Stephan Eggermont
Squeak, Tobias Pape
Your favorite Smalltalk, You
Completing

maandag 9 september 13

Demo
Explicit & Implicit Waiting

maandag 9 september 13

kris@yesplan.be

maandag 9 september 13

You might also like