Python y Selenium: Cómo construir un bot simple de inicio de sesión automático

La idea de hoy es mostrarles un simple Login automático (en este caso para Facebook) utilizando como herramientas: Python + Selenium.

Si bien a la aplicación que accederemos en este ejemplo es Facebook, con algunos sencillos cambios podremos acceder a las aplicaciones que sean necesarias.

El ejemplo fue realizado con Windows 7 y navegador Chrome (también se podría haber utilizado Mozilla Firefox)

Lo primero, en caso de no tener ya instalado el módulo selenium, es instalar dicho módulo. Para ello utilizamos el comando: pip install -U selenium (si no tienes instalado pip, puedes pasarte por esta entrada).

Lo siguiente (fue la solución que encontré momentánea), es descargar el ejecutable: Selenium Chrome Driver, que abrirá el navegador Chrome para realizar nuestras tareas automatizadas (también existe uno para Mozilla Firefox). Este controlador es una forma simple de abrir Chrome para acceder a las operaciones estándar del navegador mediante programación.
El ejecutable lo puedes guardar donde quieras, luego hay que indicar en el código la ruta del mismo (en este caso se encuentra extraido en el escritorio).

Para obtener la información necesaria:

  • Ingresamos en la url: www.facebook.com
  • Luego nos posicionamos con el mouse sobre el TextBox del correo, presionamos con el botón secundario y elegimos la opción "Inspeccionar"
  • Debemos capturar el ID de ese TextBox, en este caso: "email"

  • Lo mismo para el TextBox de la contraseña
  • Por último debemos capturar el elemento "Type" del botón "Iniciar Sesión" como lo muestra la imagen (en este caso "submit")

Ya con estos datos recolectados solo nos queda escribir el código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Url: https://www.pythondiario.com
# Autor: Diego Caraballo

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

#Ruta donde guardamos chromedriver.exe
browser = webdriver.Chrome("C:UsersAdminDesktopchromedriverchromedriver.exe")
browser.get("https://facebook.com") 
time.sleep(5)

#Datos que extraemos de la pagina inspeccionando elemento
username = browser.find_element_by_id("email")
password = browser.find_element_by_id("pass")

#Cambiar las credenciales
username.send_keys("tu_correo")
password.send_keys("tu_contraseña")

#Emula el hacer click en "Iniciar Sesion"
login_attempt = browser.find_element_by_xpath("//*[@type='submit']")
login_attempt.submit()

Y esto sería todo amigos, lo que queda es seguir investigando, escribir código y crear nuestros propios scripts automatizados.

Cualquier sugerencia o duda no olviden dejar sus comentarios al final de la entrada.

Saludos, Diego

  1. Unknown dice:

    Hola buenas noches Diego, volví a las redes, me encanta que nos siga brindando conocimientos, herramientas, entre otros.
    Desde Venezuela bendiciones =*

    1. PythonDiario dice:

      Gracias Vanessa como siempre 😉
      Saludos

  2. Unknown dice:

    Saludos excelente post, trate de hacerlo pero parece que chrome tiene deshabilitada a esta extensión

    1. PythonDiario dice:

      Hola José. Gracias por participar 😉
      Te da algún error? porque yo probé con Chrome y Mozilla y me funciona correctamente!!!
      Saludos

  3. Andres Rodriguez dice:

    Cordial Saludo,

    Excelente blog, tengo un incoveniente no me funciona que deberia tener instalado... tengo instalado windows 8.1 python 2.7 .... al ingresar en el ejecutable se abre y se cierra solo... quedo atento a tus valiosas sugerencias muchas gracias y feliz dia

  4. Andres Rodriguez dice:

    Sale: port 9515

    Only local connections are allowed

  5. PythonDiario dice:

    Hola Andres, gracias por visitar el blog!!! Has instalado el módulo selenium? Si lo ejecutas desde el IDE obtienes algo?
    Saludos, Diego

    1. Andres Rodriguez dice:

      Diego Mil Gracias por tu ayuda, ahora estoy intentando abrir Selenium Chrome Driver, ya descargue el .exe pero no funciona adicional estoy con http://seleniummaster.com/sitecontent/index.php/selenium-robot-framework-menu/selenium-robot-framework-python-menu/192-selenium-robot-framework-python-test-case-with-ride pero es complicado ya que ni siquiera he podido abrir el google

    2. PythonDiario dice:

      Descarga el .exe y guardarlo por ejemplo en el escritorio. Luego, en esta parte del script: browser = webdriver.Chrome("C:UsersAdminDesktopchromedriverchromedriver.exe") agrega donde tienes el Exe (por ejemplo, en el escritorio). Luego corre el script

  6. Andres Rodriguez dice:

    Diego eres muy gentil muchas gracias por tu ayuda, disculpa la molestia te incomodo con una ultima consulta.

    En el ride: Donde lo debería ubicar
    *** Settings ***
    *** Variables ***
    *** Test Cases ***
    LoginTest
    *** Keywords ***

    o Debo crear algo nuevo ?

    1. PythonDiario dice:

      mmmm no sabría decirte, no lo he usado.
      Esta entrada quizá te pueda ayudar: http://stackoverflow.com/questions/40839172/add-chrome-web-driver-in-ride-robot-framework

      Saludos

  7. Unknown dice:

    hola diego, muy buena tu explicación, quisiera saber como poder realizar una búsqueda y dar click si que existiera botón para ello, entiendes, es solo poner la palabra y dar enter

  8. Unknown dice:

    excelente muchas gracias

  9. Unknown dice:

    Hola, necesitarin ayuda con la comparación elementos xpath. Por ejemplo en tu caso. Como se podria hacer para verificar la existencia de un elemento y de acuerdo o no a su existencia hacer una u otras acciones. Algo como el if y el else

    1. PythonDiario dice:

      Hola, con Try Exception. Si no encuentra lanzará una excepción y ahí es donde haces la otra cosa. Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey