Iniciar sesión en Gmail usando Python Selenium

Las secuencias de comandos de Python son una de las cosas más intrigantes y fascinantes que se pueden hacer mientras se aprende Python. La automatización y el control del navegador es una de ellas.

En este artículo en particular, veremos cómo iniciar sesión en la cuenta de Gmail usando Python y el poder del selenium.

Selenium automatiza y controla los navegadores y su actividad. Podemos codificar en nuestra forma de controlar las tareas del navegador con la ayuda de selenium. Principalmente, es para automatizar aplicaciones web con fines de prueba, pero ciertamente no se limita solo a eso. Las aburridas tareas de administración basadas en la web también se pueden automatizar. A medida que aprende más, es muy divertido ver que las cosas suceden automáticamente y ahorrar tiempo al realizar tareas inútiles una y otra vez.

 

Usamos selenium aquí para abrir el sitio de nuestro requerimiento (en este caso, Gmail) y allí inspeccionamos los elementos en el cuadro de correo electrónico, el cuadro de contraseña y el botón Siguiente para encontrar el Xpath de ellos.

  • Usando la función find_element_by_xpath() proporcionada por el módulo Selenium, podemos encontrar el elemento requerido (cuadro de nombre de usuario, cuadro de contraseña, botón Siguiente)
  • Usando la función send_keys() , proporcionada por el módulo Selenium, enviaremos los datos al cuadro.
  • Usando la función click() , proporcionada por el módulo de selenium, hacemos un clic en el elemento actual.
  • El atributo .get() nos permite abrir una página web
  • .implicitly_wait() nos permite esperar hasta que se cargue la página

Se requiere la instalación de módulos de terceros

  • Selenium
  • conseguir pase
  • Requisito adicional: geckodriver para firefox y chromedriver para chrome

Importación de módulos necesarios

Selenium: para automatizar el navegador

Tomando nombre de usuario y contraseña como entrada del usuario

Usando la función input() y pasando el mensaje de solicitud como argumento.

Navegador de apertura y sitio web requerido

webdriver.Chrome() abrirá una nueva ventana de Chrome. Guardaremos su objeto en la variable denominada controlador.

Ahora, usando la función de obtención, abriremos el sitio web de Gmail.

Elemento de búsqueda para enviar datos y enviar entrada

Utilice la herramienta de inspección de elementos en el elemento del navegador del que desea encontrar la identificación. En este caso, inspeccionaremos el cuadro de nombre de usuario, el cuadro de contraseña, el botón Siguiente para encontrar su Xpath. Y luego use este Xpath combinándolo con la función de selenium find_element_by_xpath() para encontrarlo en la página web y guardarlo en variables para su uso posterior. Luego, al usar send_keys() , enviaremos datos a través de los elementos encontrados previamente. Luego, al usar click() , haremos clic en el elemento encontrado.

Nota: Aquí , el controlador es el nombre de la variable que eligió para webdriver.Chrome() .

Algoritmo:

Este es un programa simple que puede iniciar sesión en su cuenta de Gmail. En el mejor de los casos, la cuenta no es segura o no es una identificación de correo de la organización.

En el peor de los casos, si tiene una cuenta de Gmail que tiene habilitada la autenticación de dos pasos o de dos factores.

Algoritmo:

Paso 1: obtenga la identificación de correo y la contraseña

Paso 2: Abra la página de inicio de sesión de Gmail

Paso 3: Ingrese la identificación de gmail y haga clic en el botón siguiente

Paso 4: Ingrese la contraseña y haga clic en el botón siguiente

Paso 5: Impresión exitosa o fallida y Fin

Código completo:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
  
print('Enter the gmailid and password')
gmailId, passWord = map(str, input().split())
try:
    driver = webdriver.Chrome(ChromeDriverManager().install())
    driver.get(r'https://accounts.google.com/signin/v2/identifier?continue='+\
    'https%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&sacu=1&rip=1'+\
    '&flowName=GlifWebSignIn&flowEntry = ServiceLogin')
    driver.implicitly_wait(15)
  
    loginBox = driver.find_element_by_xpath('//*[@id ="identifierId"]')
    loginBox.send_keys(gmailId)
  
    nextButton = driver.find_elements_by_xpath('//*[@id ="identifierNext"]')
    nextButton[0].click()
  
    passWordBox = driver.find_element_by_xpath(
        '//*[@id ="password"]/div[1]/div / div[1]/input')
    passWordBox.send_keys(passWord)
  
    nextButton = driver.find_elements_by_xpath('//*[@id ="passwordNext"]')
    nextButton[0].click()
  
    print('Login Successful...!!')
except:
    print('Login Failed')

Vea cómo un código tan conciso puede automatizar las cosas para usted.

Prima:

También podemos introducir la contraseña sin mostrarla en pantalla , por motivos de seguridad. Para eso tenemos que incluir un módulo más llamado getpass . Ahora, con solo un cambio en la declaración de entrada de la contraseña, podemos ingresar la contraseña sin mostrarla en la pantalla.

from getpass import getpass
  
pwd = getpass('Enter Password:')

Getpass solicita al usuario una contraseña sin hacer eco. Básicamente, te permite ingresar la contraseña sin mostrarla en la pantalla.

Del mismo modo, también puede automatizar muchas otras cosas, como iniciar sesión en Twitter, twittear, cerrar sesión en Gmail y mucho más.

Publicación traducida automáticamente

Artículo escrito por hareesh_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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