Introduction to Selenium Web Driver

37,879 views

Published on

Author: Maria Kokhanjuk

4 Comments
66 Likes
Statistics
Notes
No Downloads
Views
Total views
37,879
On SlideShare
0
From Embeds
0
Number of Embeds
94
Actions
Shares
0
Downloads
0
Comments
4
Likes
66
Embeds 0
No embeds

No notes for slide

Introduction to Selenium Web Driver

  1. 1. Introduction to Selenium Web DriverKokhanjuk Maria Test Lead2012 www.ExigenServices.com
  2. 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. 3. What is Selenium?Selenium is a set of tools for cross-platform automated testingof 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. 4. Components of Selenium• Selenium IDE• Selenium Remote Control (RC)• Selenium Grid• Selenium 2.0 and WebDriver 4 www.ExigenServices.com
  5. 5. What is Selenium 2.0 ?Selenium 1.0 WebdriverIDESelenium RC mergeSelenium Grid Selenium Webdriver 2.0 5 www.ExigenServices.com
  6. 6. Selenium 1.0 Architecture Autotests HTTP(Java, PHP, Phyton, Selenium RC Ruby, C#, …) Browsers Web-application 6 www.ExigenServices.com
  7. 7. Selenium 2.0 ArchitectureAutotests Driver Browsers Web-application API to control the browser 7 www.ExigenServices.com
  8. 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. 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. 10. WebDriver’s DriversWebDriver•HtmlUnit Driver•Firefox Driver•Internet Explorer Driver•Chrome Driver•Opera Driver•iPhone Driver•Android Driver 10 www.ExigenServices.com
  11. 11. Selenium APIWebDriver – 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. 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. 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. 14. Selenium API: Find elementsTools for finding elements:1. Firebug. Download firebug at http://getfirebug.com/2. Firefinder for Firebug 14 www.ExigenServices.com
  15. 15. Selenium API: Find elementshttp://www.w3.org/TR/2001/CR-css3-selectors-20011113/#selectors 15 www.ExigenServices.com
  16. 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. 17. Selenium API: WaitsImplicit WaitsExplicit Waits 17 www.ExigenServices.com
  18. 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. 19. Create tests1. Java http://java.com/ru/download2. IDE3. Library Selenium WebDriver http://seleniumhq.org/download/4. Firebug 19 www.ExigenServices.com
  20. 20. Create testTest Case: Selenium is in the first line of request for rambler searchCondition: Browser is openSteps: 1. Enter “selenium webdriver” into search request 2. Press search buttonExpected result: The first line of request must be a link to the official Selenium website 20 www.ExigenServices.com
  21. 21. Create testpublic 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. 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. 23. Create testpublic class Constants { public static final String txtRambler = "input[class=r--hat-form-text-input]";} 23 www.ExigenServices.com
  24. 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. 25. Create testpublic 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. 26. Create test: result 26 www.ExigenServices.com
  27. 27. Create test: result 27 www.ExigenServices.com
  28. 28. Structure of the test1. Use Set UP () and tearDown()2. All tests should finish with assertion3. Elements’ locators should be defined in separateclass 28 www.ExigenServices.com
  29. 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. 30. Questions Questions? 31 www.ExigenServices.com

×