Como sabemos, Selenium es una herramienta utilizada para controlar los navegadores web a través de un programa. Se puede usar en todos los navegadores, sistemas operativos y su programa está escrito en varios lenguajes de programación, es decir, Java, Python (todas las versiones).
Selenium nos ayuda a automatizar cualquier tipo de tarea que hacemos con frecuencia en nuestras computadoras portátiles, PC, desde usar Facebook Messenger para enviar mensajes de texto y WhatsApp también, twittear tweets diariamente en Twitter, desearles a los amigos «Feliz cumpleaños» en Facebook, buscar en Google cualquier cosa que queramos aprender, y muchas tareas más. Todas estas tareas se pueden automatizar usando selenium en solo una pequeña implementación.
Instalación:
- Vaya al símbolo del sistema y ponga esto en:
pip install selenium
- Una vez hecho esto, descargue un controlador web para la automatización. Aquí, usaremos chromedriver de http://chromedriver.chromium.org/
Aprendamos cómo automatizar el proceso de desear un deseo de cumpleaños en la línea de tiempo de un amigo de Facebook como una publicación.
Todo el proceso de esta automatización se puede dividir de la siguiente manera:
- Inicie sesión en la aplicación de Facebook utilizando credenciales como nombre de usuario y contraseña.
- Publicar un feed de «Feliz cumpleaños» en la línea de tiempo de aquellos amigos cuyo cumpleaños es hoy.
A continuación se muestran los pasos:
- Cree un objeto de navegador y use la función get() para enviar una solicitud al sitio web que queremos conectar/usar.
- Encuentre los elementos como los cuadros de entrada de nombre de usuario y contraseña, el botón de inicio de sesión y use las funciones de Selenium como click(), send_keys(), etc. para hacer clic en los botones e ingresar el nombre de usuario y la contraseña respectivamente.
- Después de eso, use la función get() para enviar una solicitud a la página /eventos/cumpleaños/.
- En la parte superior de esta página, hay una tarjeta de «Cumpleaños de hoy» que muestra el nombre de un amigo cuyo cumpleaños es hoy junto con un cuadro de texto de entrada para ingresar cualquier fuente en su línea de tiempo.
- Usando el XPATH de estos cuadros de texto de entrada, enviaremos nuestro feed, es decir, «Feliz cumpleaños» usando la función send_keys() de Selenium.
- Cierra el navegador.
NOTA: Cree un archivo test.txt por separado e ingrese su contraseña de Facebook antes de ejecutar el siguiente programa.
A continuación se muestra la implementación:
Python3
# importing necessary classes # from different modules from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.chrome.options import Options from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.keys import Keys import time chrome_options = webdriver.ChromeOptions() prefs = {"profile.default_content_setting_values.notifications": 2} chrome_options.add_experimental_option("prefs", prefs) browser = webdriver.Chrome("chromedriver.exe") # open facebook.com using get() method browser.get('https://www.facebook.com/') # user_name or e-mail id username = "agrawal.abhi108@gmail.com" # getting password from text file with open('test.txt', 'r') as myfile: password = myfile.read().replace('\n', '') print("Let's Begin") element = browser.find_elements_by_xpath('//*[@id ="email"]') element[0].send_keys(username) print("Username Entered") element = browser.find_element_by_xpath('//*[@id ="pass"]') element.send_keys(password) print("Password Entered") # logging in log_in = browser.find_elements_by_id('loginbutton') log_in[0].click() print("Login Successful") browser.get('https://www.facebook.com/events/birthdays/') feed = 'Happy Birthday !' element = browser.find_elements_by_xpath("//*[@class ='enter_submit\ uiTextareaNoResize uiTextareaAutogrow uiStreamInlineTextarea\ inlineReplyTextArea mentionsTextarea textInput']") cnt = 0 for el in element: cnt += 1 element_id = str(el.get_attribute('id')) XPATH = '//*[@id ="' + element_id + '"]' post_field = browser.find_element_by_xpath(XPATH) post_field.send_keys(feed) post_field.send_keys(Keys.RETURN) print("Birthday Wish posted for friend" + str(cnt)) # Close the browser browser.close()
Publicación traducida automáticamente
Artículo escrito por VarunNayal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA