最近遇到个使用 appium 测试 mobile safari 的问题,appium 在处理 alert 的时候,使用模拟器能够正常的自动确认,使用下面的代码
capabilities.setCapability("autoAcceptAlerts", true);
但是在真机上(ios8 和 ios9),却发现无法自动确认而卡死。跟了下代码,发现 appium 注入到手机端的 bootstrap.js 里的 UIATarget.onAlert 根本没有触发。这里我特意加了个 log,发现模拟器下有输出,而真机下无输出。调了很久无果,猜想模拟器是直接启动 safari,而真机是通过 safariLauncher 来启动 safari 的。但实在搞不定啊~
ps:单独搞了个 app,内嵌了这个网页,采用 Hybird 的方式,却没有这个问题,alert 能被处理