如何使用selenium web驱动程序自动化OTP?

如何使用selenium web驱动程序自动化OTP?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我正在做一个网站的自动注册,但问题是,一旦我输入手机号码,它就会发送一个OTP。输入OTP后,它会要求输入密码,然后我就可以注册了 一旦我输入手机号码,有没有办法获得OTP代码? 或 我们可以使用SeleniumWebDriver自动化OTP吗 您可以尝试以下任何一种: 解决方案1: 步骤1:通过USB将手机/加密狗连接到COM端口 步骤2:调用通过smslib.jar获取短信的代码 获取sms的示例代码: public void sendSMS() throws Exception{

我正在做一个网站的自动注册,但问题是,一旦我输入手机号码,它就会发送一个OTP。输入OTP后,它会要求输入密码,然后我就可以注册了

一旦我输入手机号码,有没有办法获得OTP代码? 或
我们可以使用SeleniumWebDriver自动化OTP吗

您可以尝试以下任何一种:

解决方案1:

步骤1:通过USB将手机/加密狗连接到COM端口

步骤2:调用通过smslib.jar获取短信的代码

获取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);
}
步骤3:解析sms,通过最近收到的sms从获取的列表中获取OTP

解决方案2:

步骤1:连接android手机/iphone

第2步:如果手机的android-通过appium(或任何其他自动应用程序)自动运行短信应用程序,或者如果手机的iphone-自动运行短信应用程序功能,则自动运行手机中的短信应用程序

获取短信并对其进行解析以获取OTP

解决方案3:

步骤1:注册HTTP SMS网关(大多数提供付费API调用,很少提供免费API调用进行测试)

步骤2:调用该方法获取SMS

步骤3:解析消息(根据最近收到的短信进行排序后)以获取OTP

这三种方法可以获得OTP,然后将其发送给Web应用程序

解决方案4:

从DB获取OTP(如果其内部应用程序或可访问)

“解决方案3和解决方案4”是最有效的,它不依赖于sms接收平台

解决方案汇总如下:


上面的代码可以自动运行OTP验证站点。只需创建您的本地chrome trusted one,然后使用上面的代码调用相同的浏览器进行测试。这很酷:)

也许您可以尝试一下,在输入电话号码后,等待它将短信转发到您的计算机。然后使用该消息执行下一步。但是设置所有的东西可能会很烦人。不是针对selenium的,但是你可以设置开发和生产项目环境,如果设置的环境是开发环境,你可以跳过所有otp验证。嘿@Samina sheikh,你能详细解释一下吗?当然可以!首先打开你系统的chrome浏览器,在那里你想进行自动化(例如,甚至在服务器上)…然后手动登录网站,请求OPT代码并输入OTP代码。现在,您的浏览器是可信的浏览器。最后运行上面的java代码(也在c#中工作)并查看神奇之处:)您可以在Maven存储库中指定smslib.jar的正确依赖关系吗/
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");