Web Automation Using Selenium



Web Automation Using Selenium

0 0


devict-selenium-intro


On Github southekal / devict-selenium-intro

Web Automation Using Selenium

Sandip Southekal

southekal.com

About Me

  • 6 years in QA
  • startups and mid-sized companies
  • recent import to Wichita
  • breaking things at

Plan

  • What is Selenium?
  • What is Selenium?
  • Why Web Automation?
  • What is Selenium?
  • Why Web Automation?
  • Types of Selenium
  • What is Selenium?
  • Why Web Automation?
  • Types of Selenium
  • Examples
  • What is Selenium?
  • Why Web Automation?
  • Types of Selenium
  • Examples
  • Pitfalls
  • What is Selenium?
  • Why Web Automation?
  • Types of Selenium
  • Examples
  • Pitfalls
  • Continuous Integration
  • What is Selenium?
  • Why Web Automation?
  • Types of Selenium
  • Examples
  • Pitfalls
  • Continuous Integration
  • Other Uses

What is Selenium?

  • automates browsers (Firefox, Chrome, Safari, PhantomJS etc..)
  • mimics user actions
  • JSON Wire Protocol to interact with DOM elements

Why Web Automation?

Can't we just?

Famous Last Words

clicking on the link does not do anything!

looks borked on IE

doesn't work on my phone

unable to login

Why Selenium?

  • agile
  • repeatability
  • speed
  • rapid feedback
  • unlimited iterations
  • UI is fairly stable

Types of Selenium

Selenium IDE

Pros:

  • simple firefox plugin
  • record and playback Tool
  • rapid prototyping

Cons:

  • no iteration support
  • no conditional statement support
  • firefox only

Selenium WebDriver

  • supports WebDriver API
  • makes a direct call to the browser
  • cross browser coverage
  • Java, Python, Ruby, Perl, C# + more libraries available
  • find locators via IDs, Classes, CSS Selectors, XPATH, Tags
Source: http://qeworks.com/selenium-webdriver-architecture/

Selenium Grid

  • run tests in parallel on remote machines
  • connect to a remote machine that has a particular browser version
  • hub and node model
  • setup in house or farm it to Sauce Labs, BrowserStack etc..

Pitfalls

  • adding sleeps
  • javascript elements
  • browser behavior
  • constant site updates (page object, data attributes)
  • database validation (running tests in parallel)

Continuous Integration

  • Jenkins
  • Travis
  • Circle CI
  • and many more...

Other Use Cases

  • Web Scraping
  • Monitoring
  • Load Testing
https://alexrecker.com/selenium-bus-pass.html
Web Automation Using Selenium Sandip Southekal southekal.com