我们有这种情况:
在app1中执行脚本,在某个步骤中,app1向我们发送带有URL的短信,app1期待在文本字段中显示验证码
我们必须打开短信应用以验证短信是否存在,此短信有一个URL,当我们点击它时,它再次将我们发送到app1,但自动将验证码写入文本域。
然后,继续编写脚本。
可以这样做吗? 我们需要做什么?
感谢。
答案 0 :(得分:1)
是的,根据您的方案,您必须在app1中执行脚本的过程中启动消息(将其称为app2)应用程序。您可以使用以下代码打开app2。
driver.startActivity(app2PackageName, app2ActivityName);
现在app2将打开你可以点击app2中的链接打开app1,你可以访问app1中的元素。
答案 1 :(得分:0)
根据this article,如果您使用的是Appium的XCUITest驱动程序,则是可能的。
请注意,它仅支持9.3及更高版本的iOS。
您可以在the official docs上找到其他一些您可能会感兴趣的应用程序管理命令。
答案 2 :(得分:0)
对于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")