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.