我们有这样的场景:
在 app1 中执行脚本,在某些步骤中 app1 向我们发送带有 URL 的 SMS,app1 期望文本字段中的验证码
我们必须打开短信应用程序来验证短信是否存在,这条短信有一个 URL,当我们点击它时,它会再次将我们发送到 app1,但验证码会自动写入文本字段。
然后,继续执行脚本。
是否有可能做到这一点?我们需要做什么?
谢谢。
我们有这样的场景:
在 app1 中执行脚本,在某些步骤中 app1 向我们发送带有 URL 的 SMS,app1 期望文本字段中的验证码
我们必须打开短信应用程序来验证短信是否存在,这条短信有一个 URL,当我们点击它时,它会再次将我们发送到 app1,但验证码会自动写入文本字段。
然后,继续执行脚本。
是否有可能做到这一点?我们需要做什么?
谢谢。
对于 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")
是的,根据您的场景,您必须在 app1 中执行脚本的过程中启动消息(将其称为 app2)应用程序。您可以使用以下代码打开 app2。
driver.startActivity(app2PackageName, app2ActivityName);
现在 app2 将打开,您可以单击 app2 中的链接,该链接将打开 app1,您可以访问 app1 中的元素。