SlideShare a Scribd company logo
1 of 30
Introduction to Selenium Web Driver
Kokhanjuk Maria Test Lead




2012                        www.ExigenServices.com
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
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
Components of Selenium


• Selenium IDE


• Selenium Remote Control (RC)


• Selenium Grid


• Selenium 2.0 and WebDriver


                        4      www.ExigenServices.com
What is Selenium 2.0 ?


Selenium 1.0                 Webdriver


IDE
Selenium RC
                     merge
Selenium Grid




                 Selenium
                Webdriver 2.0


                                     5   www.ExigenServices.com
Selenium 1.0 Architecture


   Autotests          HTTP
(Java, PHP, Phyton,          Selenium RC
   Ruby, C#, …)




                                Browsers




                             Web-application



                                               6   www.ExigenServices.com
Selenium 2.0 Architecture




Autotests           Driver      Browsers




                             Web-application



   API
   to control the
   browser




                                               7   www.ExigenServices.com
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
Disadvantages of Selenium 2.0


• Need to create own webdriver for each test
  environment
• Only 4 programming languages are supported




                                       9       www.ExigenServices.com
WebDriver’s Drivers

WebDriver

•HtmlUnit Driver
•Firefox Driver
•Internet Explorer Driver
•Chrome Driver
•Opera Driver
•iPhone Driver
•Android Driver




                                    10   www.ExigenServices.com
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
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
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
Selenium API: Find elements

Tools for finding elements:

1. Firebug. Download firebug at http://getfirebug.com/




2. Firefinder for Firebug


                                     14    www.ExigenServices.com
Selenium API: Find elements




http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#selectors


                                                     15     www.ExigenServices.com
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
Selenium API: Waits



Implicit Waits

Explicit Waits




                                        17   www.ExigenServices.com
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
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
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
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
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
Create test


public class Constants {


    public static final String txtRambler = "input[class='r--hat-form-text-input']";


}




                                                                     23       www.ExigenServices.com
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
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
Create test: result




                      26   www.ExigenServices.com
Create test: result




                      27   www.ExigenServices.com
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
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
Questions




     Questions?




                  31   www.ExigenServices.com

More Related Content

What's hot

Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
Web application testing with Selenium
Web application testing with SeleniumWeb application testing with Selenium
Web application testing with SeleniumKerry Buckley
 
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...Simplilearn
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesVijay Rangaiah
 
Selenium test automation
Selenium test automationSelenium test automation
Selenium test automationSrikanth Vuriti
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using seleniumshreyas JC
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Edureka!
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Simplilearn
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using SeleniumWeifeng Zhang
 
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Edureka!
 

What's hot (20)

Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 
Selenium Automation Framework
Selenium Automation  FrameworkSelenium Automation  Framework
Selenium Automation Framework
 
Web application testing with Selenium
Web application testing with SeleniumWeb application testing with Selenium
Web application testing with Selenium
 
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
 
SELENIUM PPT.pdf
SELENIUM PPT.pdfSELENIUM PPT.pdf
SELENIUM PPT.pdf
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering Colleges
 
Selenium test automation
Selenium test automationSelenium test automation
Selenium test automation
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
Selenium WebDriver Tutorial For Beginners | What Is Selenium WebDriver | Sele...
 

Similar to Introduction to Selenium Web Driver

Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2Sebastiano Armeli
 
Step by step - Selenium 3 web-driver - From Scratch
Step by step - Selenium 3 web-driver - From Scratch  Step by step - Selenium 3 web-driver - From Scratch
Step by step - Selenium 3 web-driver - From Scratch Haitham Refaat
 
Top 15 Selenium WebDriver Interview Questions and Answers.pptx
Top 15 Selenium WebDriver Interview Questions and Answers.pptxTop 15 Selenium WebDriver Interview Questions and Answers.pptx
Top 15 Selenium WebDriver Interview Questions and Answers.pptxAnanthReddy38
 
selenium-webdriver-interview-questions.pdf
selenium-webdriver-interview-questions.pdfselenium-webdriver-interview-questions.pdf
selenium-webdriver-interview-questions.pdfAnuragMourya8
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsQuontra Solutions
 
Top 15 Selenium WebDriver Interview Questions and Answers.pdf
Top 15 Selenium WebDriver Interview Questions and Answers.pdfTop 15 Selenium WebDriver Interview Questions and Answers.pdf
Top 15 Selenium WebDriver Interview Questions and Answers.pdfAnanthReddy38
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersAjit Jadhav
 
Best Selenium Online Training
Best Selenium Online TrainingBest Selenium Online Training
Best Selenium Online TrainingSamatha Kamuni
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試 政億 林
 
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Atirek Gupta
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in Sandeep Tol
 
Indic threads pune12-improve testing efficiency with selenium webdriver
Indic threads pune12-improve testing efficiency with selenium webdriverIndic threads pune12-improve testing efficiency with selenium webdriver
Indic threads pune12-improve testing efficiency with selenium webdriverIndicThreads
 

Similar to Introduction to Selenium Web Driver (20)

Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
 
Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
 
Selenium WebDriver FAQ's
Selenium WebDriver FAQ'sSelenium WebDriver FAQ's
Selenium WebDriver FAQ's
 
Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2
 
Step by step - Selenium 3 web-driver - From Scratch
Step by step - Selenium 3 web-driver - From Scratch  Step by step - Selenium 3 web-driver - From Scratch
Step by step - Selenium 3 web-driver - From Scratch
 
Selenium training
Selenium trainingSelenium training
Selenium training
 
Top 15 Selenium WebDriver Interview Questions and Answers.pptx
Top 15 Selenium WebDriver Interview Questions and Answers.pptxTop 15 Selenium WebDriver Interview Questions and Answers.pptx
Top 15 Selenium WebDriver Interview Questions and Answers.pptx
 
selenium-webdriver-interview-questions.pdf
selenium-webdriver-interview-questions.pdfselenium-webdriver-interview-questions.pdf
selenium-webdriver-interview-questions.pdf
 
Selenium.pptx
Selenium.pptxSelenium.pptx
Selenium.pptx
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra Solutions
 
Web driver training
Web driver trainingWeb driver training
Web driver training
 
Top 15 Selenium WebDriver Interview Questions and Answers.pdf
Top 15 Selenium WebDriver Interview Questions and Answers.pdfTop 15 Selenium WebDriver Interview Questions and Answers.pdf
Top 15 Selenium WebDriver Interview Questions and Answers.pdf
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And Answers
 
Best Selenium Online Training
Best Selenium Online TrainingBest Selenium Online Training
Best Selenium Online Training
 
Selenium
SeleniumSelenium
Selenium
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試
 
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
Understanding Selenium/RC, Webdriver Architecture and developing the page obj...
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Selenium Automation in Java Using HttpWatch Plug-in
 Selenium Automation in Java Using HttpWatch Plug-in  Selenium Automation in Java Using HttpWatch Plug-in
Selenium Automation in Java Using HttpWatch Plug-in
 
Indic threads pune12-improve testing efficiency with selenium webdriver
Indic threads pune12-improve testing efficiency with selenium webdriverIndic threads pune12-improve testing efficiency with selenium webdriver
Indic threads pune12-improve testing efficiency with selenium webdriver
 

More from Return on Intelligence

Profsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukProfsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukReturn on Intelligence
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classificationReturn on Intelligence
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patternsReturn on Intelligence
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileReturn on Intelligence
 
Организация внутренней системы обучения
Организация внутренней системы обученияОрганизация внутренней системы обучения
Организация внутренней системы обученияReturn on Intelligence
 
Shared position in a project: testing and analysis
Shared position in a project: testing and analysisShared position in a project: testing and analysis
Shared position in a project: testing and analysisReturn on Intelligence
 
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеReturn on Intelligence
 
Successful interview for a young IT specialist
Successful interview for a young IT specialistSuccessful interview for a young IT specialist
Successful interview for a young IT specialistReturn on Intelligence
 

More from Return on Intelligence (20)

Profsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by PavelchukProfsoux2014 presentation by Pavelchuk
Profsoux2014 presentation by Pavelchuk
 
Agile Project Grows
Agile Project GrowsAgile Project Grows
Agile Project Grows
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
 
Time Management
Time ManagementTime Management
Time Management
 
Service design principles and patterns
Service design principles and patternsService design principles and patterns
Service design principles and patterns
 
Differences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and AgileDifferences between Testing in Waterfall and Agile
Differences between Testing in Waterfall and Agile
 
Windows Azure: Quick start
Windows Azure: Quick startWindows Azure: Quick start
Windows Azure: Quick start
 
Windows azurequickstart
Windows azurequickstartWindows azurequickstart
Windows azurequickstart
 
Организация внутренней системы обучения
Организация внутренней системы обученияОрганизация внутренней системы обучения
Организация внутренней системы обучения
 
Shared position in a project: testing and analysis
Shared position in a project: testing and analysisShared position in a project: testing and analysis
Shared position in a project: testing and analysis
 
Introduction to Business Etiquette
Introduction to Business EtiquetteIntroduction to Business Etiquette
Introduction to Business Etiquette
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке
 
Meetings arranging
Meetings arrangingMeetings arranging
Meetings arranging
 
How to develop your creativity
How to develop your creativityHow to develop your creativity
How to develop your creativity
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
The art of project estimation
The art of project estimationThe art of project estimation
The art of project estimation
 
Successful interview for a young IT specialist
Successful interview for a young IT specialistSuccessful interview for a young IT specialist
Successful interview for a young IT specialist
 
Risk Management
Risk ManagementRisk Management
Risk Management
 
Resolving conflicts
Resolving conflictsResolving conflicts
Resolving conflicts
 

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