How to automate OTP using selenium web driver?

前端 未结 2 1748
一个人的身影
一个人的身影 2020-12-28 19:48

I am doing automation for registration in a website but the problem is that it sends an OTP once i enter mobile no. after enter otp it will ask for password and than i am ab

相关标签:
2条回答
  • 2020-12-28 20:46

    You may try any one of them:

    Solution 1:

    Step 1: Connect the Phone/Dongle to the COM Port via USB.

    Step 2: Call the code for fetching sms via smslib.jar

    Sample Code to fetch sms:

    public void sendSMS() throws Exception{
        OutboundNotification outboundNotification = new OutboundNotification();
        SerialModemGateway gateway = new SerialModemGateway("modem.com5", "COM5", 9600, "ZTE", "COM5");
        gateway.setInbound(true);
        gateway.setOutbound(true);
        gateway.setSmscNumber("+91XXXXXXXXXX"); // 10-digit Mobile Number
        Service.getInstance().setOutboundMessageNotification(outboundNotification);
        Service.getInstance().addGateway(gateway);
        Service.getInstance().startService();
        OutboundMessage msg = new OutboundMessage(ExcelConnect.strSMSTo, ExcelConnect.strSMSText);
        Service.getInstance().sendMessage(msg);
        System.out.println(msg);
        System.out.println(ExcelConnect.strSMSTo + "-" + ExcelConnect.strSMSText);
        Service.getInstance().stopService();
        Service.getInstance().removeGateway(gateway);
    }
    

    Step 3: Parse sms to get the OTP from the fetched list by latest received sms

    .

    Solution 2:

    Step 1: Connect the android phone / iphone.

    Step 2: Automate the SMS App in either of the phone, if its android - automate SMS app via appium(or any other automating app) or if its iphone - automate its SMS app feature,

    to get the SMS and parse it to get the OTP

    .

    Solution 3:

    Step 1: Register for the HTTP SMS Gateway(Most of them provide paid API Call with very few free API Calls for testing).

    Step 2: Call the method to fetch SMS.

    Step 3: Parse the message(after sorting it by latest received sms) to get the OTP

    .

    These three ways you can get the OTP and then you can send it to you Web Application.

    .

    Solution 4:

    Get the OTP from DB, if its in-house application or if it can be accessed.

    .

    'Solution 3 and Solution 4' being most efficient and it doesn't have any dependency on sms receiving platforms.

    .

    Solutions consolidated below:

    0 讨论(0)
  • 2020-12-28 20:49
    String userProfile= "C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\";
            System.setProperty("webdriver.chrome.driver","C:\\Users\\user\\Desktop\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--user-data-dir="+userProfile);
            options.addArguments("--profile-directory=Default");
            options.addArguments("--start-maximized");
            WebDriver driver = new ChromeDriver(options);
            driver.get("https://mail.google.com/mail/u/0/#inbox");
    

    The above code working fine for Automate the OTP verification sites..just create your local chrome trusted one time and call same browser using above code for testing..its quite cool :)

    0 讨论(0)
提交回复
热议问题