Selenium : los enlaces de Selenium Python proporcionan una API conveniente para acceder a Selenium Web Driver como Firefox, Chrome, etc. ¿
Qué es webdriver?
Selenium WebDriver es una herramienta de prueba de automatización. Cuando digo automatización, significa que automatiza los scripts de prueba escritos en Selenium.
Instalación del controlador web
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Biblioteca importada
from selenium import webdriver import time
(i) Biblioteca de Selenium:
– Utilizada para la automatización
– Controlar Webdriver
– Realizar acciones como – clics en elementos, actualizar página, ir al enlace del sitio web, etc.
(ii) Biblioteca de tiempo:
-Para usar la función de suspensión porque Selenium funciona solo cuando todos los elementos la página está cargada.
Truco 1: ¿Cómo aumentar el número de visitas en un sitio web?
#Nota: Esto no funcionará en todos los sitios web, como youtube.
Lo que estaríamos aprendiendo es a actualizar la página web una y otra vez después de un intervalo de tiempo determinado.
Python
#!/usr / bin / env python from selenium import webdriver import time # set webdriver path here it may vary browser = webdriver.Chrome(executable_path ="C:\Program Files (x86)\Google\Chrome\chromedriver.exe") website_URL ="https://www.google.co.in/" 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()
Truco 2: Cómo iniciar sesión en un sitio web, aquí tomamos un ejemplo de Zomato
Python
from selenium import webdriver # 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 browser.get('https://www.zomato.com / ncr') 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()
Truco 3: secuencia de comandos de automatización de inicio de sesión de Instagram.
Sabemos que Instagram descontinuará su API heredada a partir del 29 de junio de 2020.
Por lo tanto, probablemente sea una mejor idea aprender secuencias de comandos de automatización.
Python3
from selenium import webdriver # sleep() function is required because # selenium needs a page to be fully loaded first # otherwise errors may occur from time import sleep # Usage 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 self.driver.get("https://instagram.com") 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() 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')
Publicación traducida automáticamente
Artículo escrito por shaurya uppal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA