├── .gitignore ├── 01_Navigate_Url.py ├── 02_Fill_Text.py ├── 03_Set_Dropdown.py ├── 04_Enable_Checkbox.py ├── 05_Click_Button.py ├── 06_Form_Validation.py ├── 07_Form_Submit_Success.py ├── 08_Hover.py ├── 09_Count_Rows.py ├── 10_Table_Text.py ├── 11_Consolidated_Test.py └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | #Add files you want to ignore 2 | *.pyc -------------------------------------------------------------------------------- /01_Navigate_Url.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to navigate to a URL using Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox Driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Check the page title 16 | 4) Close the browser 17 | """ 18 | from selenium import webdriver 19 | 20 | # Create an instance of Firefox WebDriver 21 | browser = webdriver.Firefox() 22 | 23 | # KEY POINT: The driver.get method will navigate to a page given by the URL 24 | browser.get('http://qxf2.com/selenium-tutorial-main') 25 | 26 | # Check if the title of the page is proper 27 | if(browser.title=="Qxf2 Services: Selenium training main"): 28 | print ("Success: Qxf2 Tutorial page launched successfully") 29 | else: 30 | print ("Failed: Qxf2 Tutorial page Title is incorrect") 31 | 32 | # Quit the browser window 33 | browser.quit() 34 | -------------------------------------------------------------------------------- /02_Fill_Text.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to fill text fields with Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox Driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Find elements using id, xpath, xpath without id 16 | 4) Fill name, email and phone no in the respective fields 17 | 5) Close the browser 18 | """ 19 | import time 20 | from selenium import webdriver 21 | 22 | # Create an instance of Firefox WebDriver 23 | driver = webdriver.Firefox() 24 | 25 | # The driver.get method will navigate to a page given by the URL 26 | driver.get("http://qxf2.com/selenium-tutorial-main") 27 | 28 | # Check if the title of the page is proper 29 | if(driver.title=="Qxf2 Services: Selenium training main"): 30 | print ("Success: Qxf2 Tutorial page launched successfully") 31 | else: 32 | print ("Failure: Qxf2 Tutorial page Title is incorrect") 33 | 34 | # Find the name field using xpath with id 35 | name = driver.find_element("xpath", "//input[@id='name']") 36 | # KEY POINT: Send text to an element using send_keys method 37 | name.send_keys('Avinash') 38 | 39 | # Find the email field using xpath without id 40 | email = driver.find_element("xpath", "//input[@name='email']") 41 | email.send_keys('avinash@qxf2.com') 42 | 43 | # Find the phone no field using id 44 | phone = driver.find_element("id", "phone") 45 | phone.send_keys('9999999999') 46 | 47 | # Sleep is one way to wait for things to load 48 | # Future tutorials cover explicit, implicit and ajax waits 49 | time.sleep(3) 50 | 51 | # Close the browser window 52 | driver.close() 53 | 54 | 55 | -------------------------------------------------------------------------------- /03_Set_Dropdown.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to set dropdowns with Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox Driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Set Gender to Male in the Example Form 16 | 4) Close the browser 17 | """ 18 | import time 19 | from selenium import webdriver 20 | 21 | # Create an instance of Firefox WebDriver 22 | driver = webdriver.Firefox() 23 | # Maximize the browser window 24 | driver.maximize_window() 25 | 26 | # Navigate to Qxf2 Tutorial page 27 | driver.get("http://qxf2.com/selenium-tutorial-main") 28 | 29 | # KEY POINT: Identify the dropdown and click on it 30 | dropdown_element = driver.find_element("xpath", "//button[@data-toggle='dropdown']") 31 | dropdown_element.click() 32 | # Sleep is one way to pause while the page elements load 33 | time.sleep(1) 34 | 35 | # KEY POINT: Locate a particular option and click on it 36 | driver.find_element("xpath", "//a[text()='Male']").click() 37 | # Future tutorials cover explicit, implicit and ajax waits 38 | time.sleep(3) 39 | 40 | # Close the browser window 41 | driver.close() 42 | -------------------------------------------------------------------------------- /04_Enable_Checkbox.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to select a checkbox using Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox Driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Find the Checkbox element in the Example form and enable it 16 | 4) Close the browser 17 | """ 18 | import time 19 | from selenium import webdriver 20 | 21 | # Create an instance of Firefox WebDriver 22 | driver = webdriver.Firefox() 23 | # Maximize the browser window 24 | driver.maximize_window() 25 | driver.get("http://qxf2.com/selenium-tutorial-main") 26 | 27 | # KEY POINT: Locate the checkbox and click on it 28 | checkbox = driver.find_element("xpath", "//input[@type='checkbox']") 29 | checkbox.click() 30 | 31 | # Pause the script for 3 sec so you can confirm the check box was selected 32 | time.sleep(3) 33 | 34 | # Close the browser window 35 | driver.close() 36 | 37 | 38 | -------------------------------------------------------------------------------- /05_Click_Button.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to click a button with Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Chrome driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Find the Click me! button and click on it 16 | 4) Close the driver 17 | """ 18 | import time 19 | from selenium import webdriver 20 | 21 | # Create an instance of Chrome WebDriver 22 | driver = webdriver.Chrome() 23 | # Maximize the browser window 24 | driver.maximize_window() 25 | # Navigate to Qxf2 Tutorial page 26 | driver.get("http://qxf2.com/selenium-tutorial-main") 27 | 28 | # KEY POINT: Locate the button and click on it 29 | button = driver.find_element("xpath", "//button[text()='Click me!']") 30 | button.click() 31 | 32 | # Pause the script to wait for page elements to load 33 | time.sleep(3) 34 | 35 | # Close the browser 36 | driver.close() 37 | 38 | -------------------------------------------------------------------------------- /06_Form_Validation.py: -------------------------------------------------------------------------------- 1 | """ 2 | Check for the presence of absence of page elements 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Find the Click me! button and click on it 16 | 4) Check for the validation message 17 | 5) Close the browser 18 | """ 19 | import time 20 | from selenium import webdriver 21 | 22 | # Create an instance of IE WebDriver 23 | driver = webdriver.Firefox() 24 | # Maximize the browser window 25 | driver.maximize_window() 26 | # Navigate to Qxf2 Tutorial page 27 | driver.get("http://qxf2.com/selenium-tutorial-main") 28 | 29 | # Find the click me! button and click it 30 | button = driver.find_element("xpath" ,"//button[text()='Click me!']") 31 | button.click() 32 | # Pause the script to wait for validation messages to load 33 | time.sleep(3) 34 | 35 | # KEY POINT: Check if the validation mesage for name field 36 | try: 37 | driver.find_element("xpath", "//label[text()='Please enter your name']") 38 | except Exception as e: 39 | #This pattern of catching all exceptions is ok when you are starting out 40 | result_flag = False 41 | else: 42 | result_flag = True 43 | if result_flag is True: 44 | print("Validation message for name present") 45 | else: 46 | print("Validation message for name NOT present") 47 | 48 | # Close the browser window 49 | driver.close() 50 | -------------------------------------------------------------------------------- /07_Form_Submit_Success.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to fill and submit a form with Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Fill all the text field in Example form 16 | 4) Click on Click me! button 17 | 5) Verify user is taken to Selenium Tutorial redirect page 18 | 6) Close the browser 19 | """ 20 | 21 | import time 22 | from selenium import webdriver 23 | 24 | # Create an instance of Firefox WebDriver 25 | driver = webdriver.Firefox() 26 | # Maximize the browser window 27 | driver.maximize_window() 28 | # Navigate to Qxf2 Tutorial page 29 | driver.get("http://qxf2.com/selenium-tutorial-main") 30 | 31 | #KEY POINT: Code to fill forms 32 | # Find the name field and fill name 33 | name = driver.find_element("xpath", "//input[@id='name']") 34 | name.send_keys('Avinash') 35 | # Find the email field and fill your email 36 | driver.find_element("xpath", "//input[@name='email']").send_keys('avinash@qxf2.com') 37 | # Find the phone no field and fill phone no 38 | phone = driver.find_element("id", "phone") 39 | phone.send_keys('9999999999') 40 | # Identify the xpath for Click me button and click on it 41 | button = driver.find_element("xpath", "//button[text()='Click me!']") 42 | button.click() 43 | # Wait for the new page to load 44 | time.sleep(3) 45 | # Verify user is taken to Qxf2 tutorial redirect url 46 | if (driver.current_url== 'https://qxf2.com/selenium-tutorial-redirect'): 47 | print("Success") 48 | else: 49 | print("Failure") 50 | 51 | # Close the browser 52 | driver.close() 53 | -------------------------------------------------------------------------------- /08_Hover.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to hover over elements using Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Click on Menu icon 16 | 4) Hover over Resource and GUI automation and click on GUI automation link 17 | 5) Close the browser 18 | """ 19 | 20 | import time 21 | from selenium import webdriver 22 | 23 | #Notice this extra import statement! 24 | from selenium.webdriver.common.action_chains import ActionChains 25 | 26 | # Create an instance of Firefox WebDriver 27 | driver = webdriver.Firefox() 28 | # Maximize the browser window 29 | driver.maximize_window() 30 | # Navigate to Qxf2 Tutorial page 31 | driver.get("http://qxf2.com/selenium-tutorial-main") 32 | 33 | # Locate the Menu icon and click on it 34 | menu = driver.find_element("xpath", "//img[@src='./assets/img/menu.png']") 35 | menu.click() 36 | 37 | # Locate the Resource element to hover over 38 | resource = driver.find_element("xpath", "//a[text()='Resources']") 39 | 40 | # KEY POINT: Use ActionChains to hover over elements 41 | action = ActionChains(driver) 42 | action.move_to_element(resource) 43 | action.perform() 44 | time.sleep(2) #Adding waits to make the example more visual 45 | 46 | # Click the GUI automation link 47 | gui_automation = driver.find_element("xpath", "//a[text()='GUI automation']") 48 | gui_automation.click() 49 | 50 | # Wait for 3 seconds for the page to load 51 | time.sleep(3) 52 | 53 | # Close the browser 54 | driver.close() 55 | -------------------------------------------------------------------------------- /09_Count_Rows.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to count the rows in a table using Selenium 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Find the no of rows in the Example tabel 16 | 4) Close the browser 17 | """ 18 | import time 19 | from selenium import webdriver 20 | 21 | # Create an instance of Firefox WebDriver 22 | driver = webdriver.Firefox() 23 | # Maximize the browser window 24 | driver.maximize_window() 25 | # Navigate to Qxf2 Tutorial page 26 | driver.get("http://qxf2.com/selenium-tutorial-main") 27 | 28 | # Find the table element in the page 29 | table = driver.find_element("xpath", "//table[@name='Example Table']") 30 | 31 | # KEY POINT: Find the tr elements in the table 32 | rows = table.find_elements("xpath", "//tbody/descendant::tr") 33 | print("Total No of Rows: %d"%len(rows)) 34 | 35 | # Pause the script for 3 seconds 36 | time.sleep(3) 37 | 38 | # Close the browser 39 | driver.close() 40 | -------------------------------------------------------------------------------- /10_Table_Text.py: -------------------------------------------------------------------------------- 1 | """ 2 | Learn to parse the text within each cell of a table 3 | 4 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 5 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 6 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 7 | b) Other GitHub repos: https://github.com/qxf2 8 | 9 | AUTHOR: Avinash Shetty 10 | Contact: avinash@qxf2.com 11 | 12 | SCOPE: 13 | 1) Launch Firefox driver 14 | 2) Navigate to Qxf2 Tutorial page 15 | 3) Get all the fields from the table 16 | 4) Close the browser 17 | """ 18 | import time 19 | from selenium import webdriver 20 | 21 | # Create an instance of Firefox WebDriver 22 | driver = webdriver.Firefox() 23 | # Maximize the browser window 24 | driver.maximize_window() 25 | # Navigate to Qxf2 Tutorial page 26 | driver.get("http://qxf2.com/selenium-tutorial-main") 27 | 28 | # KEY POINT: Logic to get the text in each cell of the table 29 | # Find the Example table element in the page 30 | table = driver.find_element("xpath", "//table[@name='Example Table']") 31 | # Use find_elements_by_xpath method to get the rows in the table 32 | rows = table.find_elements("xpath", "//tbody/descendant::tr") 33 | # Create a list to store the text 34 | result_data = [] 35 | # Go to each row and get the no of columns and the navigate to column 36 | # Then get the text from each column 37 | for i in range(0,len(rows)): 38 | # Find no of columns by getting the td elements in each row 39 | cols = rows[i].find_elements("tag name", "td") 40 | cols_data = [] 41 | for j in range(0,len(cols)): 42 | # Get the text of each field 43 | cols_data.append(cols[j].text.encode('utf-8')) 44 | result_data.append(cols_data) 45 | 46 | # Print the result list 47 | print(result_data) 48 | 49 | # Pause the script for 3 sec 50 | time.sleep(3) 51 | 52 | # Close the browser 53 | driver.close() 54 | -------------------------------------------------------------------------------- /11_Consolidated_Test.py: -------------------------------------------------------------------------------- 1 | """ 2 | Selenium script that performs several common actions like: 3 | click button, select dropdown, enable checkbox, set text, get text from table 4 | 5 | DISCLAIMER: This code is aimed at Selenium BEGINNERS 6 | For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 7 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 8 | b) Other GitHub repos: https://github.com/qxf2 9 | 10 | AUTHOR: Avinash Shetty 11 | Contact: avinash@qxf2.com 12 | 13 | SCOPE: 14 | 1) Launch Firefox driver 15 | 2) Navigate to Qxf2 Tutorial page 16 | 3) Print the contents of the table 17 | 4) Fill all the text fields 18 | 5) Select Dropdown option 19 | 6) Enable the checkbox 20 | 7) Take a screenshot 21 | 8) Click on Submit button 22 | 9) Close the browser 23 | """ 24 | import time 25 | from selenium import webdriver 26 | 27 | # Create an instance of Firefox WebDriver 28 | driver = webdriver.Firefox() 29 | # Maximize the browser window 30 | driver.maximize_window() 31 | # Navigate to Qxf2 Tutorial page 32 | driver.get("http://qxf2.com/selenium-tutorial-main") 33 | 34 | # Find the Example table element in the page 35 | table = driver.find_element("xpath", "//table[@name='Example Table']") 36 | # Find no of rows in the table by getting the tr elements in the table 37 | # Using find_elements_by_xpath method 38 | rows = table.find_elements("xpath", "//tbody/descendant::tr") 39 | # Create a list to store the text 40 | result_data = [] 41 | # Go to each row and get the no of columns and the navigate to column 42 | # Then get the text from each column 43 | for i in range(0,len(rows)): 44 | # Find no of columns by getting the td elements in each row 45 | cols = rows[i].find_elements("tag name", "td") 46 | cols_data = [] 47 | for j in range(0,len(cols)): 48 | # Get the text of each field 49 | cols_data.append(cols[j].text.encode('utf-8')) 50 | result_data.append(cols_data) 51 | # Print the result set 52 | print(result_data) 53 | 54 | # Find the name field using xpath with id 55 | name = driver.find_element("xpath", "//input[@id='name']") 56 | # Send text to the name element using send_keys method 57 | name.send_keys('Avinash') 58 | # Find the email field using xpath without id 59 | email = driver.find_element("xpath", "//input[@name='email']") 60 | email.send_keys('avinash@qxf2.com') 61 | # Find the phone no field using id 62 | phone = driver.find_element("id", "phone") 63 | phone.send_keys('9999999999') 64 | 65 | # Set a dropdown 66 | driver.find_element("xpath", "//button[@data-toggle='dropdown']").click() 67 | time.sleep(1) 68 | # Find the xpath of particular option and click on it 69 | driver.find_element("xpath", "//a[text()='Male']").click() 70 | 71 | # Set a checkbox 72 | checkbox = driver.find_element("xpath", "//input[@type='checkbox']") 73 | checkbox.click() 74 | 75 | # Take screenshot 76 | driver.save_screenshot('Qxf2_Tutorial.png') 77 | 78 | # Identify the xpath for Click me button and click on it 79 | button = driver.find_element("xpath", "//button[text()='Click me!']") 80 | button.click() 81 | 82 | # Pause the script for 3 sec 83 | time.sleep(3) 84 | 85 | # Verify user is taken to Qxf2 tutorial redirect url 86 | if (driver.current_url== 'https://qxf2.com/selenium-tutorial-redirect'): 87 | print("Success") 88 | else: 89 | print("Failure") 90 | 91 | # Pause the script for 3 sec 92 | time.sleep(3) 93 | 94 | # Close the browser 95 | driver.close() 96 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | -------- 2 | Learn Selenium using examples for beginners 3 | -------- 4 | Selenium lets you control the browser through a script. Selenium lets you interact with browsers in a manner similar to real users interacting with browsers. We present small code samples that help you learn selenium from scratch using Python. These are example code for some of the most commonly performed actions on a webpage like navigating to a URL, fill in the text, click buttons, hover over elements, choose drop downs, validate text, etc. 5 | 6 | -------- 7 | Motivation for creating this repository 8 | -------- 9 | We noticed that many people who plan on learning selenium think it would take a lot of effort and time and hence would never start learning it. This small collection of 11 wellcrafted working examples would help you to learn Selenium quickly. Working through this example you will notice how easy it is to get started and perform various actions on a webpage. 10 | 11 | This code is a companion to a Selenium tutorial (aimed at newbies) we presented as part of the Mangaluru Software Testing Group. This page was created by Qxf2 Services (http://qxf2.com) and Mangalore Infotech (http://mangaloreinfotech.in/) to help testers practice Selenium. 12 | 13 | Qxf2 provides QA consultancy services for startups. If you found this repository useful, please let us know by giving us a star on GitHub. 14 | 15 | ####UPDATE: 16 | 17 | This repo has been updated on 14-Sep-2022 to account for [some changes](https://github.com/SeleniumHQ/selenium/blob/a4995e2c096239b42c373f26498a6c9bb4f2b3e7/py/CHANGES) in Selenium 4.3.2 that were not backward incompatible. We also took this chance to update the scripts to use Python 3.x 18 | 19 | -------- 20 | Setup: 21 | -------- 22 | a. Install Python 3.x 23 | 24 | b. If you do not have it already, get pip 25 | 26 | c. Add both to your PATH environment variable 27 | 28 | d. Install the latest Selenium (pip install Selenium) 29 | 30 | e. Download Geckodriver (https://github.com/mozilla/geckodriver/releases) and add it to your PATH environment variable 31 | 32 | f. Download Chromedriver (https://sites.google.com/chromium.org/driver/) and add it to your PATH environment variable 33 | 34 | g. Open command prompt, navigate to the folder you have downloaded the repo and run the example code using command eg: *python 01_Navigate_Url.py* 35 | 36 | Pro tip: Once you are setup, try your best to timebox each exercise to no more than 10-minutes. We recommend this tip for even rank beginners who know nearly nothing about Selenium and Python! 37 | 38 | -------- 39 | DISCLAIMER: 40 | -------- 41 | 42 | This code is aimed at Selenium BEGINNERS. For more advanced tutorials and to learn how Qxf2 writes GUI automation, please visit our: 43 | 44 | a) Our GUI automation guides: http://qxf2.com/gui-automation-diy 45 | 46 | b) Other GitHub repos: https://github.com/qxf2 47 | 48 | -------- 49 | AUTHORS: 50 | -------- 51 | 52 | Avinash Shetty (avinash@qxf2.com) 53 | 54 | Arunkumar Muralidharan (mak@qxf2.com) 55 | --------------------------------------------------------------------------------