ios - 通过 Appium 在真实 iPhone 的 WKWebView 上运行 XCUITest 是否需要任何特殊配置?
问题描述
我已经把头撞到墙上好几天了,可以使用一些帮助来确定在 14.4(Xcode 12.4)上的 iOS 设备的 Appium 1.20.2 中是否存在错误,或者我是否错过了运行中的一些关键配置在真实设备上进行测试。
我正在尝试在我的混合应用程序上通过 Appium(与 Webdriver.io 打包)运行一些 XCUITest。当我在物理设备上运行时,我似乎看不到我的 WKWebView。
就 WDIO 而言,我的代码非常样板:
let contexts = driver.getContexts()
var foundContext = null
for (var context of contexts) {
if (context.indexOf("WEBVIEW") > -1) foundContext = context
}
该代码在运行 iOS 14.4 (iPhone XR) 的模拟器设备上返回 Web 视图实例,这让我认为这是我的设备配置或 Appium。
另一个有趣的事情是,如果我单独运行该 Web 视图并尝试在测试中或外部访问 Web 视图,则该 Web 视图甚至在 ios-web-driver-proxy 中都不可见。
我尝试过的事情:
- 在测试运行期间转储 Safari/web 日志;没有日志报告我的设备的任何内容
- 通过 Appium/WDIO 转储 Xcode 日志仅显示我正在执行的本机点击
- 手动启用 ios-web-driver-proxy 不会导致任何尝试访问
- 在我的设备上使用 IWDP 运行 Safari,甚至在没有 IDWP 的情况下运行 Safari 远程调试器,让我能够看到那里发生了什么
- 我还将 Jasmine 和 webviewConnectTimeout 中的超时更改为大约两分钟(120000 毫秒),但都没有导致任何变化
我能想到的唯一区别是我的模拟器运行的是 .app,该应用程序的 Sim 目标版本,而我的真实设备使用的是我单独拉取的 .ipa。然而,我发现禁止访问 Web 视图是一件奇怪的事情。
解决方案
推荐阅读
- swift4 - #selector 的参数不引用“@objc”方法、属性或初始化程序
- oracle - 每行的输出返回
- jquery - 如何使用 JQuery Ajax 更新 MongoDB 数据
- sqlite - Flutter中的Sqflite,使用两个数据库(附件)
- android - android以编程方式在牛轧糖上方屏蔽
- r - R闪亮的数据表分页并将所有行显示为选项
- c# - UWP C# - 访问手机文件
- bootstrap-4 - 折叠 Bootstrap 和 SimpleBar js 不能一起工作
- xml - XSLT - 如何根据分隔符拆分字符串并将值分配给多个属性
- python - 从excel文件数据在python 3.7.2中运行随机效应模型