2

我正在尝试自动化一个流程,我可以在其中读取短信,然后解析短信以读取 OTP 并将其输入另一个 web 应用程序。浏览了所有论坛,但找不到答案。

我正在用 java 编写代码并尝试使用 appium 在 android 设备上运行 webapp。

有人可以建议怎么做吗?

4

2 回答 2

2

如果您想在 Appium 会话中从设备读取短信,在讨论中描述了一个很好的方法。appium.io

我认为您可以在一次测试中创建多个会话:1-使用本机应用程序获取短信,2-在移动浏览器中打开 webApp 并执行您需要的任何操作

于 2017-11-16T13:48:40.690 回答
0

这种方法对我有用

假设您的 OTP 短信类似于“您的订单的 OTP 是 12345”,并且它显示在您的通知面板中,

  1. 到达 OTP 屏幕
  2. 下拉通知栏((AndroidDriver) driver).openNotifications();
  3. 等待这个otpElement带有 xpath的元素//android.widget.TextView[contains(@text,'OTP is')]被显示(即,当 sms 到达时)
  4. 用于OTPmessage = otpElement.getText()获取 OTP 消息文本
  5. 使用此代码提取 OTP:String OTP = StringUtils.substringBetween(OTPmessage, "OTP is ", " for ");
  6. 使用关闭通知面板((AndroidDriver) driver).pressKey(new KeyEvent(AndroidKey.BACK));

如果您正在测试应用程序,我认为这不是一个好方法。OTP 可能需要很长时间才能到达,从而不必要地使您的测试失败。最好让您的开发人员保持 OTP 固定,这样您就不需要每次都通过短信接收它。

于 2021-02-10T12:49:02.340 回答