Selenium is a portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language. Before Going Ahead Please refer to this page if you had not installed Selenium. This article revolves around Locators in Selenium and various strategies.
Contents
- Webdriver
- Getting Source of a Web-Page/URL
- Locating Elements By
- Entering Input in an Input Field Using Selenium Script
- Locating Submit Button
- Complete Code to Demonstrate Login Into Facebook
Webdriver
Selenium WebDriver drives a browser natively, as a real user would, either locally or on remote machines. To start a web browser python selenium Module Needs webdriver. One can download it from here for chromium browser
Python3
# Python program to demonstrate # Webdriver For Firefox from selenium import webdriver driver = webdriver.Firefox() driver.get("https: / / mbasic.facebook.com") |
How to Use Other Webdriver
Python3
# Firefox driver = webdriver.Firefox() # Google Chrome driver = webdriver.Chrome() |
Getting Source of a Web-Page/URL
By Using this one can get the complete page source/code of current opened URL/Web-Page.
Python3
# Python program Continued # Webdriver For Firefox from selenium import webdriver driver = webdriver.Chrome() driver.get("https: / / mbasic.facebook.com") html = driver.page_source # Getting Source of Current URL / Web-Page Loaded print (html) # End |
Output:
One Need to Go Through the Source Code Of the Page To Create Selenium Automated Script
For Example :-
Locating Elements By :-
1. Id
HTML Elements have some attribute “id” which can be used to Locate Those Elements. For Example :- Finding Input Box For Email Field
Python3
# Python program Continued # Finding Input Box For Email Field # Go Through the Screen Shot Above or Page Source driver.find_element_by_id("m_login_email") # End |
2. Name
HTML Elements Have attribute “name” associated with them which can be used to Locate Those Elements. For Example :- Finding Input Box For Password Field
Python3
# Python program Continued # Finding Input Box For Password Field # Go Through the Screen Shot Above or Page Source driver.find_element_by_name(" pass ") # End |
3. Link Text
HTML Elements which are actually a Link To another Page can be Located using that particular Link Text. For Example :- Finding Forgotten Password Link Field
Python3
# Python program Continued # Finding Forgotten Password Link Field driver.find_element_by_link_text("Forgotten password?") # End |
4. Partial Link Text
HTML Elements which are actually a Link To another Page can be Located using that particular Partial Link Text. For Example :- Finding Forgotten Password Link Field
Python3
# Python program Continued # Finding Forgotten Password Link Field driver.find_element_by_partial_link_text("Forgotten password?") # End |
5. XPath
HTML Elements can be Easily Found by using this For Example :- Find Email and Password Input Field
Python3
# Python program Continued # Creating a Reference of Form For Finding Email and Password # Reference for Form Finding form = driver.find_element_by_xpath(" / / form[@ id = 'login_form' ]") # Email email = form.find_element_by_name("email") # Password password = form.find_element_by_name(" pass ") # End |
6. Tag Name
HTML Elements can be Easily Found by using Tag Name For Example :- Finding Elements by using tag name like Title, Head, Body, Html, a, div, etc.
Python3
# Python program Continued # Finding Title of Facebook Login Page # Output will be "Facebook - log in or sign up" title = driver.find_element_by_tag_name("title") print (title) # End |
7. CSS Selector
HTML Elements can be Easily Found by using CSS For Example :- Finding Elements by using Class, style, etc.
Python3
# Python program Continued # Finding Password Input Field Using Class Name "bl bm bo bp" password = driver.find_element_by_css_selector( 'input.bl.bm.bo.bp' ) # End |
8. Class Name
HTML Elements can be Easily Found by using Class name For Example :- Finding Elements by using Class Name.
Python3
# Python program Continued # Finding Password Input Field Using Class Name "bl bm bo bp" password = driver.find_element_by_class_name( 'bl bm bo bp' ) # End |
9. Entering Input in an Input Field Using Selenium Script
It is Used to Insert Input into Input Field Using inbuilt Function send_keys.
Python3
# Python program Continued # Creating a Reference of Form For Finding Email and Password # Reference for Form Finding form = driver.find_element_by_xpath(" / / form[@ id = 'login_form' ]") email = form.find_element_by_name("email") password = form.find_element_by_name(" pass ") # Inserting("abc@gmail.com") in the Email Input Field email.send_keys("singh.swaraj1999@gmail.com") # Inserting("Your Facebook Password") in the Password Input Field password.send_keys("Your Facebook Password") # End |
10. Locating Submit Button
It is Used to Locate the Submit Button Which is used to submit a form
Python3
# Python program Continued # Creating a Reference of Form For Finding Email and Password form = driver.find_element_by_xpath(" / / form[@ id = 'login_form' ]") email = form.find_element_by_name("email") password = form.find_element_by_name(" pass ") email.send_keys("singh.swaraj1999@gmail.com") password.send_keys("Your Facebook Password") # Locating Submit Button submit_button = driver.find_element_by_xpath(" / / input [@ type = 'submit' ]") submit_button.click() # Button Click # End |
Output:-
11. Complete Code to Demonstrate Login Into Facebook
Python3
# Python program to demonstrate Facebook Login from selenium import webdriver driver = webdriver.Firefox() driver.get("https: / / mbasic.facebook.com") # Creating a Reference of Form For Finding Email and Password form = driver.find_element_by_xpath(" / / form[@ id = 'login_form' ]") email = form.find_element_by_name("email") password = form.find_element_by_name(" pass ") email.send_keys("singh.swaraj1999@gmail.com") password.send_keys("Your Facebook Password") submit_button = driver.find_element_by_xpath(" / / input [@ type = 'submit' ]") submit_button.click() # Error Password in Output # Because i had not used my real password here # End |
Output:-