Advertisement

Introduction to Selenium Web Driver

Return on Intelligence
Oct. 18, 2012
Advertisement

More Related Content

Advertisement

Introduction to Selenium Web Driver

  1. Introduction to Selenium Web Driver Kokhanjuk Maria Test Lead 2012 www.ExigenServices.com
  2. Agenda •What is Selenium 2.0 •Architecture of Selenium 2.0 •Selenium 2.0 API: • Finding elements • Basic operations on elements • Moving between windows and frames • Explicit and Implicit Waits •Creating tests using Selenium 2.0 2 www.ExigenServices.com
  3. What is Selenium? Selenium is a set of tools for cross-platform automated testing of web applications. Selenium supports: • IE, Firefox, Safari, Opera and other browsers • Windows, OS X, Linux, Solaris and other OS’s • C#, Java, Perl, PHP, Python, Ruby and other languages • Bromine, JUnit, NUnit, RSpec, TestNG, unittest 3 www.ExigenServices.com
  4. Components of Selenium • Selenium IDE • Selenium Remote Control (RC) • Selenium Grid • Selenium 2.0 and WebDriver 4 www.ExigenServices.com
  5. What is Selenium 2.0 ? Selenium 1.0 Webdriver IDE Selenium RC merge Selenium Grid Selenium Webdriver 2.0 5 www.ExigenServices.com
  6. Selenium 1.0 Architecture Autotests HTTP (Java, PHP, Phyton, Selenium RC Ruby, C#, …) Browsers Web-application 6 www.ExigenServices.com
  7. Selenium 2.0 Architecture Autotests Driver Browsers Web-application API to control the browser 7 www.ExigenServices.com
  8. Advantages of Selenium 2.0 • The development and connection of new drivers, adapted to the specific test environment • A more "advanced" API for writing tests • Events generated are the same as for manual testing • Work with invisible elements is not available 8 www.ExigenServices.com
  9. Disadvantages of Selenium 2.0 • Need to create own webdriver for each test environment • Only 4 programming languages are supported 9 www.ExigenServices.com
  10. WebDriver’s Drivers WebDriver •HtmlUnit Driver •Firefox Driver •Internet Explorer Driver •Chrome Driver •Opera Driver •iPhone Driver •Android Driver 10 www.ExigenServices.com
  11. Selenium API WebDriver – to control the browser WebDriver driver = new FirefoxDriver(); WebElement – to work with the elements on the page WebElement element = driver.findElement(By.id(“id”)); 11 www.ExigenServices.com
  12. WebDriver API  void get(java.lang.String url) – open page  void quit() – close browser  WebDriver.TargetLocator switchTo() – switching between the popup-E, alert, windows  WebElement findElement(By by) -– find element by locator  List<WebElement> findElements(By by) – find elements by locator 12 www.ExigenServices.com
  13. Selenium API: Find elements  By.id("idOfObject")  By.linkText("TextUsedInTheLink")  By.partialLinkText("partOfThelink")  By.tagName("theHTMLNodeType")  By.className("cssClassOnTheElement")  By.cssSelector("cssSelectorToTheElement")  By.xpath("//Xpath/to/the/element")  By.name("nameOfElement") 13 www.ExigenServices.com
  14. Selenium API: Find elements Tools for finding elements: 1. Firebug. Download firebug at http://getfirebug.com/ 2. Firefinder for Firebug 14 www.ExigenServices.com
  15. Selenium API: Find elements http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#selectors 15 www.ExigenServices.com
  16. Selenium API: Basic operations on elements  void click()  void submit()  String getValue()  void sendKeys(keysToSend)  void clear()  String getElementName()  String getAttribute(java.lang.String name)  boolean toggle() 16 www.ExigenServices.com
  17. Selenium API: Waits Implicit Waits Explicit Waits 17 www.ExigenServices.com
  18. Working with windows  Working with browser windows driver.getWindowHandles() driver.switchTo().window(windowName)  Working with frames driver.switchTo().frame( "frameName" );  Working with alerts driver.switchTo().alert(); 18 www.ExigenServices.com
  19. Create tests 1. Java http://java.com/ru/download 2. IDE 3. Library Selenium WebDriver http://seleniumhq.org/download/ 4. Firebug 19 www.ExigenServices.com
  20. Create test Test Case: Selenium is in the first line of request for rambler search Condition: Browser is open Steps: 1. Enter “selenium webdriver” into search request 2. Press search button Expected result: The first line of request must be a link to the official Selenium website 20 www.ExigenServices.com
  21. Create test public class Rambler { protected WebDriver driver; @Before public void setUp() throws Exception { System.out.println("tmp"); // driver = new FirefoxDriver(); driver = new InternetExplorerDriver(); driver.get("http://www.rambler.ru/"); } 21 www.ExigenServices.com
  22. Create test @Test public void RamblerSearch() throws Exception { System.out.println(" TC: Selenium is in the first line of request for rambler search"); waitUntilDisplayed(By.cssSelector(Constants.txtRambler)); driver.findElement(By.cssSelector(Constants.txtRambler)).sendKeys("selenium webdriver"); driver.findElement(By.className("pointer")).click(); //wait first result waitUntilDisplayed(By.cssSelector("div[class='b-left-column__wrapper']")); assertTrue(driver.findElement(By.cssSelector("div[class='b-podmes_books b- podmes_top_1']")).getText().contains("Selenium - Web Browser Automation")); } 22 www.ExigenServices.com
  23. Create test public class Constants { public static final String txtRambler = "input[class='r--hat-form-text-input']"; } 23 www.ExigenServices.com
  24. Create test @Test public void RamblerSearch() throws Exception { System.out.println(" TC: Selenium is in the first line of request for rambler search"); waitUntilDisplayed(By.cssSelector(Constants.txtRambler)); driver.findElement(By.cssSelector(Constants.txtRambler)).sendKeys("selenium webdriver"); driver.findElement(By.className("pointer")).click(); //wait first result waitUntilDisplayed(By.cssSelector("div[class='b-left-column__wrapper']")); assertTrue(driver.findElement(By.cssSelector("div[class='b-podmes_books b- podmes_top_1']")).getText().contains("Selenium - Web Browser Automation")); } 24 www.ExigenServices.com
  25. Create test public void waitUntilDisplayed(final By locator) { ( new WebDriverWait(driver, 120)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return d.findElement(locator).isDisplayed(); } }); } @After public void tearDown() throws Exception { //close browser driver.quit(); } 25 www.ExigenServices.com
  26. Create test: result 26 www.ExigenServices.com
  27. Create test: result 27 www.ExigenServices.com
  28. Structure of the test 1. Use Set UP () and tearDown() 2. All tests should finish with assertion 3. Elements’ locators should be defined in separate class 28 www.ExigenServices.com
  29. Useful links • http://seleniumhq.org/docs/ • http://software-testing.ru/library/testing/functional- testing/1398-selenium-20 • http://automated- testing.info/knowledgebase/avtomatizaciya- funkcionalnogo-testirovaniya/selenium • http://autotestgroup.com/ru/ • http://www.w3.org/TR/2001/CR-css3-selectors- 20011113/#selectors • http://junit.org 30 www.ExigenServices.com
  30. Questions Questions? 31 www.ExigenServices.com
Advertisement