Selenium: Selenium Python bindings provide a convenient API to access Selenium Web Driver like Firefox, Chrome, etc.
What is webdriver?
Selenium WebDriver is an automation testing tool. When I say automation, it means it automates test scripts written in Selenium.
Webdriver Install
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Library Imported
from selenium import webdriver from selenium.webdriver.common.by import By import time
(i) Selenium library:
– Used for Automation
– Control Webdriver
– Perform actions like – element clicks, refresh page, goto website link, etc
(ii) Time library:
-For using sleep function because selenium works only when all the elements of the page is loaded.
Trick 1: How to increase view count on a website?
#Note: This will not work on all websites, like youtube.
What we would be learning is to refresh the webpage again and again after a particular interval of time.
#!/usr / bin / env python from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# set webdriver path here it may vary browser = webdriver.Chrome(
executable_path = "C:\Program Files (x86)\Google\Chrome\chromedriver.exe" )
browser.get(website_URL) # After how many seconds you want to refresh the webpage # Few website count view if you stay there # for a particular time # you have to figure that out refreshrate = int ( 15 )
# This would keep running until you stop the compiler. while True :
time.sleep(refreshrate)
browser.refresh()
|
Trick2: How to login on a website, here we take example of Zomato
from selenium import webdriver
from selenium.webdriver.common.by import By
# For using sleep function because selenium # works only when all the elements of the # page is loaded. import time
# webdriver path set browser = webdriver.Chrome(
"C:\Program Files (x86)\Google\Chrome\chromedriver.exe" )
# To maximize the browser window browser.maximize_window() # zomato link set time.sleep( 3 )
# Enter your user name and password here. username = "test"
password = "test"
# signin element clicked browser.find_element(By.XPATH, "//a[@id ='signin-link']" ).click()
time.sleep( 2 )
# Login clicked browser.find_element(By.XPATH, "//a[@id ='login-email']" ).click()
# username send a = browser.find_element(By.XPATH, "//input[@id ='ld-email']" )
a.send_keys(username) # password send b = browser.find_element(By.XPATH, "//input[@id ='ld-password']" )
b.send_keys(password) # submit button clicked browser.find_element(By.XPATH, "//input[@id ='ld-submit-global']" ).click()
print ( 'Login Successful' )
browser.close() |
Trick 3: Instagram Login automation script.
We know that Instagram is discontinuing its Legacy API from 29 June, 2020.
So it’s probably a better idea to learn automation scripting.
from selenium import webdriver
from selenium.webdriver.common.by import By
# time.sleep() function is required because # selenium needs a page to be fully loaded first # otherwise errors may occur import time
# Usage time.sleep(x) Where x is time in seconds and # may vary according to your connection # I have made class so that extra methods can be added later on # if required class instagramBot:
def __init__( self , username, password):
# these lines will help if someone faces issues like
# chrome closes after execution
self .opts = webdriver.ChromeOptions()
self .opts.add_experimental_option( "detach" , True )
self .driver = webdriver.Chrome(options = self .opts)
# Username and password
self .username = username
self .password = password
# Opens Instagram login page
time.sleep( 2 ) # 1 Second Wait
# Automatically enters your username and
# password to instagram's username field
self .driver.find_element(
By.XPATH, "//input[@name = 'username']" ).send_keys( self .username)
self .driver.find_element(
By.XPATH, "//input[@name = 'password']" ).send_keys( self .password)
# Clicks on Log In Button
self .driver.find_element(
By.XPATH, "//div[contains(text(), 'Log In')]" ).click()
time.sleep( 2 )
# Bonus: Automatically clicks on 'Not Now'
# when Instagram asks to show notifications
self .driver.find_element(
By.XPATH, "//button[contains(text(), 'Not Now')]" ).click()
# Testing Your Code instagramBot( 'Sample Username' , 'Sample Password' )
|