es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Verificación OTP en Appium

¿Cómo leer los mensajes OTP en un dispositivo Android al realizar una prueba de inicio de sesión en otra aplicación?

Actualmente estoy pausando la prueba e ingresando manualmente el OTP para luego ejecutar la prueba. Pero quiero automatizarlo.

Hay algunos métodos para leer el contenido de un mensaje SMS, pero no sé cómo abrir la aplicación de mensajería y leer el contenido mientras se ejecuta otra aplicación.

¿Alguien puede ayudarme?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Lectura de SMS OTP en un dispositivo Android durante una prueba de inicio de sesión

    Para automatizar el proceso de lectura de SMS OTP mientras se realiza una prueba de inicio de sesión en otra aplicación, se puede utilizar Appium-Android y Selenium-WebDriver. A continuación se presentan los pasos para leer SMS OTP durante una prueba de inicio de sesión:

    1. Instala la biblioteca del cliente de Appium y Selenium
    2. Conecta tu dispositivo al sistema y ejecuta el servidor de Appium
    3. Inicia la aplicación en la que estás realizando la prueba de inicio de sesión
    4. Pausa la prueba y lee manualmente el OTP desde la aplicación de mensajería
    5. Abre la aplicación de mensajería usando Appium-Android y lee el cuerpo del mensaje OTP
    6. Utiliza el OTP obtenido en el proceso de inicio de sesión

    El código a continuación muestra cómo automatizar la lectura de SMS OTP en Android utilizando Appium-Android y Selenium-WebDriver:

    import io.appium.java_client.android.AndroidDriver;
    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.By;
    import org.openqa.selenium.remote.CapabilityType;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class ReadOTPSMS {
        public static void main(String[] args) throws Exception {
            DesiredCapabilities cap = new DesiredCapabilities();
            cap.setCapability(CapabilityType.BROWSER_NAME, "");
            cap.setCapability("deviceName", "Mi dispositivo Android");
            cap.setCapability("platformVersion", "9.0");
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.google.android.apps.messaging");
            cap.setCapability("appActivity", "com.google.android.apps.messaging.ui.conversationlist.ConversationListActivity");
    
            AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
            driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    
            // Navega hasta el mensaje OTP en la aplicación de mensajería
            WebDriverWait wait = new WebDriverWait(driver, 60);
            wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.TextView[contains(@text,'Tu OTP es:')]")));
    
            // Obtiene el OTP del cuerpo del mensaje
            String otpSMS = driver.findElement(By.xpath("//android.widget.TextView[contains(@text,'Tu OTP es:')]")).getText();
    
            // Utiliza el OTP en tu proceso de inicio de sesión
            System.out.println("El OTP es: " + otpSMS);
            driver.quit();
        }
    }
    

    Ahora puedes utilizar este código junto con tu prueba de inicio de sesión en otra aplicación para automatizar la lectura y uso de SMS OTP durante el proceso de inicio de sesión.

Comments are closed.