【问题标题】:How to automate OTP using selenium web driver?如何使用 selenium Web 驱动程序自动化 OTP?
【发布时间】:2016-03-16 04:39:02
【问题描述】:

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

输入手机号码后有什么方法可以获取一次性密码? 或者 我们可以使用 selenium webdriver 自动化 OTP 吗?

【问题讨论】:

  • 也许你可以试试这个,smsenabler.com
  • 输入电话号码后,等待它转发短信到您的电脑。然后使用该消息执行下一步。但是设置所有东西可能很烦人。
  • 不特定于 selenium,但您可以设置开发和生产项目环境,如果设置的环境是开发,则可以跳过所有 otp 验证。

标签: selenium selenium-webdriver


【解决方案1】:

您可以尝试其中任何一种:

解决方案 1:

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

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

获取短信的示例代码:

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 步:解析短信以获取最新收到的短信获取的列表中的 OTP

.

解决方案 2:

第一步:连接安卓手机/iphone。

第 2 步:在任一手机中自动化 SMS 应用程序,如果它的 android - 通过 appium(或任何其他自动化应用程序)自动化 SMS 应用程序,或者如果它的 iphone - 自动化其 SMS 应用程序功能,

获取 SMS 并解析它以获取 OTP

.

解决方案 3:

第 1 步:注册 HTTP SMS 网关(其中大多数提供付费 API 调用,免费 API 调用用于测试)。

第二步:调用方法获取短信。

第3步:解析消息(按最新收到的短信排序后)得到OTP

.

您可以通过这三种方式获取 OTP,然后您可以将其发送给您的 Web 应用程序。

.

解决方案 4:

从 DB 获取 OTP,如果它的内部应用程序或者是否可以访问。

.

'方案 3 和方案 4' 效率最高,对短信接收平台没有任何依赖。

.

解决方案合并如下:

【讨论】:

【解决方案2】:
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");

上面的代码可以很好地自动化 OTP 验证站点..只需创建一次受信任的本地 chrome 并使用上面的代码调用相同的浏览器进行测试..它非常酷:)

【讨论】:

  • 嘿@Samina sheikh,你能详细解释一下吗?
  • 是的,当然!首先打开您想要进行自动化的系统的 chrome 浏览器(例如,即使在服务器上)..然后手动登录网站并请求 OPT 代码并输入 OTP 代码。现在您的浏览器是受信任的浏览器..最后运行上面的 java 代码(也在 c# 中工作)并看到魔法:)
猜你喜欢
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多