Este artículo muestra el método para iniciar sesión en cualquier sitio web utilizando la automatización con la ayuda de Selenium Web Driver y JavaScript . En este método se usaría el concepto de promesas. Esto se demostrará iniciando sesión en el sitio web GeeksforGeeks. Se deben seguir los siguientes pasos.
Paso 1: Instale el tiempo de ejecución de Node.js más reciente siguiendo los pasos para Windows o Linux .
Paso 2: Cree un archivo package.json para crear la aplicación Node. Esto se puede hacer ejecutando el siguiente comando y siguiendo los pasos requeridos.
npm init
Paso 3: Instale el paquete de controladores web de Selenium. Esto se puede hacer abriendo la terminal/símbolo del sistema en el mismo directorio donde está instalado el Node y ejecutando el siguiente comando.
npm install selenium-webdriver
Paso 4: Instale los controladores para el navegador que se usarán para automatizar el navegador. El navegador utilizado en este artículo es Chrome, por lo que es necesario instalar el paquete chromedriver. Esto se puede hacer usando el siguiente comando.
npm install chromedriver
Paso 5: Cree un archivo JSON (p. ej., credentials.json) para almacenar el nombre de usuario/correo electrónico y la contraseña. El siguiente formato se puede utilizar para guardar las credenciales.
{ "email": "your-username", "pass": "your-password" }
Paso 6: Cree un archivo JavaScript en el mismo directorio que el archivo de credenciales. Este archivo contendría el código para controlar el navegador e iniciar sesión automáticamente. Se siguen los pasos a continuación para iniciar sesión en la página de GeeksforGeeks. Esto está escrito en este archivo JavaScript principal.
- Accede a la página de inicio de sesión.
- Busque el cuadro de texto en la página para ingresar el nombre de usuario.
- Ingrese el nombre de usuario dado.
- Busque el cuadro de texto en la página para ingresar la contraseña.
- Introduzca la contraseña dada.
- Busque el botón para iniciar sesión.
- Haga clic en el botón de inicio de sesión.
Paso 7: Inicie el archivo JavaScript que contiene el script usando el siguiente comando.
node scriptfile.js
Código completo:
Javascript
// Include the chrome driver require("chromedriver"); // Include selenium webdriver let swd = require("selenium-webdriver"); let browser = new swd.Builder(); let tab = browser.forBrowser("chrome").build(); // Get the credentials from the JSON file let { email, pass } = require("./credentials.json"); // Step 1 - Opening the geeksforgeeks sign in page let tabToOpen = tab.get("https://auth.geeksforgeeks.org/"); tabToOpen .then(function () { // Timeout to wait if connection is slow let findTimeOutP = tab.manage().setTimeouts({ implicit: 10000, // 10 seconds }); return findTimeOutP; }) .then(function () { // Step 2 - Finding the username input let promiseUsernameBox = tab.findElement(swd.By.css("#luser")); return promiseUsernameBox; }) .then(function (usernameBox) { // Step 3 - Entering the username let promiseFillUsername = usernameBox.sendKeys(email); return promiseFillUsername; }) .then(function () { console.log( "Username entered successfully in" + "'login demonstration' for GEEKSFORGEEKS" ); // Step 4 - Finding the password input let promisePasswordBox = tab.findElement(swd.By.css("#password")); return promisePasswordBox; }) .then(function (passwordBox) { // Step 5 - Entering the password let promiseFillPassword = passwordBox.sendKeys(pass); return promiseFillPassword; }) .then(function () { console.log( "Password entered successfully in" + " 'login demonstration' for GEEKSFORGEEKS" ); // Step 6 - Finding the Sign In button let promiseSignInBtn = tab.findElement( swd.By.css(".btn.btn-green.signin-button") ); return promiseSignInBtn; }) .then(function (signInBtn) { // Step 7 - Clicking the Sign In button let promiseClickSignIn = signInBtn.click(); return promiseClickSignIn; }) .then(function () { console.log("Successfully signed in GEEKSFORGEEKS!"); }) .catch(function (err) { console.log("Error ", err, " occurred!"); });
Producción:
Publicación traducida automáticamente
Artículo escrito por AshutoshShisodia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA