4

我们有这样的场景:

在 app1 中执行脚本,在某些步骤中 app1 向我们发送带有 URL 的 SMS,app1 期望文本字段中的验证码

我们必须打开短信应用程序来验证短信是否存在,这条短信有一个 URL,当我们点击它时,它会再次将我们发送到 app1,但验证码会自动写入文本字段。

然后,继续执行脚本。

是否有可能做到这一点?我们需要做什么?

谢谢。

4

3 回答 3

2

对于 iOS,您可以调出 SMS 应用程序并在应用程序中做任何您喜欢的事情。例如,您可以打开 SMS 应用程序,然后打开最新消息,然后单击(或复制)链接。

我用红宝石。我使用基于 XCUITest 驱动程序(Noyo 已经链接)的方法,可以使用的方法如下:

启动设备上安装的任何应用程序的方法:

def launch_system_app(bundle_id)
  @driver.execute_script('mobile: launchApp', {'bundleId': "#{bundle_id}"});
end

终止已启动应用程序的方法:

def terminate_system_app(bundle_id)
  @driver.execute_script('mobile: terminateApp', {'bundleId': "#{bundle_id}"});
end

将给定字符串复制到 iOS 设备剪贴板的方法:

def set_pasteboard(content)
  @driver.set_clipboard(content: content)
end

使用消息应用程序包 ID 调用:

launch_system_app("com.apple.MobileSMS")
terminate_system_app("com.apple.MobileSMS")
于 2019-01-07T15:28:47.527 回答
1

是的,根据您的场景,您必须在 app1 中执行脚本的过程中启动消息(将其称为 app2)应用程序。您可以使用以下代码打开 app2。

 driver.startActivity(app2PackageName, app2ActivityName);

现在 app2 将打开,您可以单击 app2 中的链接,该链接将打开 app1,您可以访问 app1 中的元素。

于 2017-03-31T06:29:21.663 回答
0

根据这篇文章,如果您使用的是 Appium 的 XCUITest 驱动程序,这是可能的。

请注意,它仅支持 iOS 9.3 及更高版本。

您可以在官方文档中找到一些您可能感兴趣的其他应用程序管理命令。

于 2019-01-06T11:54:08.760 回答