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 form here for chromium browser
# Python program to demonstrate # Webdriver For Firefox from selenium import webdriver driver = webdriver.Firefox() |
How to Use Other Webdriver
# 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.
# Python program Continued # Webdriver For Firefox from selenium import webdriver driver = webdriver.Chrome() 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
# 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
# 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
# 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
# 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
# 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.
# 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.
# 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.
# 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.
# 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
# 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
# Python program to demonstrate Facebook Login from selenium import webdriver driver = webdriver.Firefox() # 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:-
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.