how to test otp functionality with selenium webdriver???Any suggestion??
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:
What libraries to import when using solution 1?
I tried with smslib.jar but there is no service class in it with get instance method.
Please let us know all libraries needed.