How can I write test automation scripts using Selenium?

I want to know how I can write test automation scripts using Selenium.

In today’s world, testing can not be efficient without automation. We need automation for avoiding repetitive work, making sure that the time from development to deployment is reduced with good quality.In order to achieve these, we need reliable automation tests and regression suite. Manual test(s) should just support automation for feature/product testing and release not vice-versa.

We need good, quality automation tests, not just automation tests. We need tests which are reliable, robust, easy to code, debug, scale and can run in parallel on distributed environment.

Since, Selenium is an open source testing tool it serves the need for cost-effective automation testing and the community always support the cost effective tool with required features. It’s capability to operate on almost every OS and multiple language support i.e. Pearl, PHP,Python, Java, .NET(C#) and Ruby provides the flexibility that every user wants. The language which is mostly used for building the program is independent of the language that is being used by the web application or website. Which implies that you can develop the test script in any of the mentioned languages that the Selenium supports.

There are several ways to quickly start automating a GUI flow using selenium. Let’s do it using python.

Pre-Req : We need python and selenium binding to be installed in the machine. If you don’t have already , follow the below steps.

  1. Download and install Python :-**

    MAC: Python Releases for Mac OS X | Python.org

    Linux: Python Source Releases | Python.org

    Windows: Python Releases for Windows | Python.org

    Command to check python version using command line :- python –version

  2. Install selenium libraries for python.

    [http://selenium-python.readthedocs.io/installation.html ]

    command:- pip install selenium

  3. Install geckodriver Since we will use latest version of selenium(3.0) with latest firefox bindings , download geckodriver :- Releases · mozilla/geckodriver · GitHub

    OR Install using command line ( using brew ):- brew install geckodriver

We are all set to write our first test! Let’s search for an item in myntra.com

Code [ Self Explanatory]:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from random import randint

browser = webdriver.Firefox()
browser.set_page_load_timeout(30)

browser.get('https://www.myntra.com/')
assert "Online Shopping" in browser.title

search = browser.find_element_by_class_name("desktop-searchBar")  # Find the search box by class
search.send_keys("watch") #send the value of search field

submit_button = browser.find_element_by_class_name("desktop-submit")
submit_button.click()
#Lets wait for lobby page to load
delay = 10 # seconds max wait
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.CLASS_NAME, "horizontal-filters-title")))
browser.save_screenshot("loggedIn.png") ## This will be stored in the location/path mentioned or the current directory
browser.close() # close browser

Tips:- Locate selenium elements for python – http://selenium-python.readthedocs.io/locating-elements.html

2 Likes