Google+ Seguidores

lunes, 8 de mayo de 2017

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: http://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:\Users\Admin\Desktop\chromedriver\chromedriver.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

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

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

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

      Eliminar
  3. 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

    ResponderEliminar
  4. Sale: port 9515

    Only local connections are allowed

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

    ResponderEliminar
    Respuestas
    1. 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

      Eliminar
    2. Descarga el .exe y guardarlo por ejemplo en el escritorio. Luego, en esta parte del script: browser = webdriver.Chrome("C:\Users\Admin\Desktop\chromedriver\chromedriver.exe") agrega donde tienes el Exe (por ejemplo, en el escritorio). Luego corre el script

      Eliminar
  6. 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 ?

    ResponderEliminar
    Respuestas
    1. 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

      Eliminar
  7. 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

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

Powered by Blogger .