robot framework and selenium2 library

of 24 /24
Introduction to Robot Framework and Selenium2Library Krishantha Samaraweera WSO2 Inc.

Author: krishanthasamaraweera

Post on 19-Aug-2014




6 download

Embed Size (px)




  • Introduction to Robot Framework and Selenium2Library Krishantha Samaraweera WSO2 Inc.
  • Agenda Introduction to Robot Hello World Demo What is Selenium2library Ride IDE Maven and Ant plugin Demo time Again
  • Introduction Generic Test Automation Framework Keyword Driven Development Open source Apache 2.0 License Sponsored by Nokia Siemens networks and It was created by Pekka Klrck as part of his master's thesis Based on Python Can be extended using java or Python Support for jython and ironPython Active Developer Community Hosted on Google code but moving to GIT now.
  • Demo - Hello World image source :
  • Installation on Linux Intall PIP easy_install pip Install Python pip install python Install Jyton (Optinal) sudo apt-get install jython Install robot framework pip install robotframework | easy_install robotframework Install ride (The IDE for robot test case writing) pip install robotframework-ride | easy_install robotframework-ride Install Selenium2Library - Selenium implementation compatible with robot pip install robotframework-selenium2library | easy_install robotframework-selenium2library
  • Installation on Windows - Windows Installer Separate graphical installers for 32 bit and 64 bit Windows systems - Stand-alone JAR package Robot Framework is also available as a stand-alone robotframework. jar package. This package contains Jython and thus requires only JVM java -jar robotframework.jar run [options] data_sources - Use Python package installers - Install from Source
  • Support for different runtimes Environment Command Python pybot Jython jybot Iron Python ipybot
  • Test Structure
  • Selenium Keyword Open Browser Input Text Click Button Click Link Close Browser
  • More Keywords Add Cookie Alert Should Be Present Assign Id To Element Capture Page Screenshot Checkbox Should Be Selected Checkbox Should Not Be Selected Choose Cancel On Next Confirmation Choose File Choose Ok On Next Confirmation Click Button Click Element Click Element At Coordinates Click Image Click Link Close All Browsers Close Browser Close Window Confirm Action Create Webdriver Current Frame Contains Current Frame Should Not Contain Delete All Cookies Delete Cookie Double Click Element Drag And Drop Drag And Drop By Offset Element Should Be Disabled Element Should Be Enabled Element Should Be Visible Element Should Contain Element Should Not Be Visible Element Text Should Be Execute Async Javascript Execute Javascript Focus Frame Should Contain Get Alert Message Get All Links Get Cookie Value Get Cookies Get Element Attribute Get Horizontal Position Get List Items Get Location Get Matching Xpath Count Get Selected List Label Get Selected List Labels Get Selected List Value Get Selected List Values Get Selenium Implicit Wait Get Selenium Speed Get Selenium Timeout Get Source Get Table Cell Get Text Get Title Get Value Get Vertical Position Get Window Identifiers Get Window Names Get Window Size Get Window Titles Go Back Go To Input Password Input Text List Selection Should Be List Should Have No Selections Location Should Be Location Should Contain Log Location Log Source Log Title Maximize Browser Window Mouse Down Mouse Down On Image Mouse Down On Link Mouse Out Mouse Over Mouse Up Open Browser Open Context Menu Page Should Contain Page Should Contain Button Page Should Contain Checkbox Page Should Contain Element Page Should Contain Image Page Should Contain Link Page Should Contain List Page Should Contain Radio Button Page Should Contain Textfield Page Should Not Contain Page Should Not Contain Button Page Should Not Contain Checkbox Page Should Not Contain Element Page Should Not Contain Image Page Should Not Contain Link Page Should Not Contain List Page Should Not Contain Radio Button Page Should Not Contain Textfield Press Key Radio Button Should Be Set To Radio Button Should Not Be Selected Register Keyword To Run On Failure Reload Page Select All From List Select Checkbox Select Frame Select From List Select From List By Index Select From List By Label Select From List By Value Select Radio Button Select Window Set Browser Implicit Wait Set Selenium Implicit Wait Set Selenium Speed Set Selenium Timeout Set Window Size Simulate Submit Form Switch Browser Table Cell Should Contain Table Column Should Contain Table Footer Should Contain Table Header Should Contain Table Row Should Contain Table Should Contain Textarea Should Contain Textarea Value Should Be Textfield Should Contain Textfield Value Should Be Title Should Be Unselect Checkbox Unselect Frame Unselect From List Unselect From List By Index Unselect From List By Label Unselect From List By Value Wait For Condition Wait Until Element Is Visible Wait Until Page Contains Wait Until Page Contains Element Xpath Should Match X Times html
  • Tabular Format Simple tabular format
  • Robot Standard Libraries Included in normal installation Operating System Screenshot Dialog Telnet XML String Process Remote
  • Robot External Libraries Not Included in normal installation. Need to install separately. Selenium2Library HTTP Android MongoDB iOS SSH Database AutoItLibrary
  • Page Should Contain Google One Spacebar Be Careful Four Spacebars
  • Selenium2Library Web Testing Library for Robot Framework. Runs on Real Browser instance. InBuild API keywords for easy usage.
  • Selenium2Library Vs Webdriver API Selenium 2 Webdriver Iterating Table C# Example public void VerifyTable(string header, string expected) { IWebElement table = _driverWithJs.FindElement(By.XPath("//div[@id='main']/table")); ReadOnlyCollection allRows = table.FindElements(By.TagName("tr")); for (int z = 0; z < allRows.Count; z++) { ReadOnlyCollection cells = allRows[z].FindElements(By.TagName("td")); for (int y = 0; y < cells.Count; y++) { var value = allRows[z].FindElements(By.TagName("td"))[y].Text; if (value.Equals(header)) { Assert.AreEqual(expected, allRows[z].FindElements(By.TagName("td"))[y + 1].Text); } } } } Robot keyword for Iterating Table Table Should Contain table_locator, expected, loglevel=INFO
  • Selenium2Library Lookup Strategy
  • Test Data Editor - RIDE
  • Custom Keyword Library Image source :
  • Maven Plugin Robot Framework in a Maven project without the need to install anything extra. org.robotframeworkrobotframework-maven-plugin1.4.2run
  • Ant Task RobotAnt is a ant task for using robotframework inside ant build scripts.
  • External variable files External file to declare variables. To follow DRY (Dont repeat yourself) Can be created in python or java files. *** Variables *** ${Weather} London Cloudy 25 ${humidity} 75 ${MARKS} 65.5 @{DAYS} Monday Wednesday Friday Sunday
  • For more information The main information hub Quick Start Guide Executable guide demonstrating the key features User Guide Detailed information about all features of the framework
  • Questions? Thanks! Image source :