我有一个混合 iOS 应用程序。其中一个视图是加载 html 文件的 WkWebView。
为了测试这个应用程序,我使用了 Google 的 EarlGrey 框架。它适用于 iOS 的原生 UI 元素。但是,我无法测试 html 中的 UI 元素。这是运行 XCTest 时失败的行:
EarlGrey.select(elementWithMatcher: grey_accessibilityID("page_view")).perform(grey_javaScriptExecution("document.getElementById('myLegend').click()", nil))
失败消息是:
Exception Name: ConstraintFailedException
Exception Reason: Cannot perform action due to constraint(s) failure.
Exception with Action: {
"Action Name" : "Execute JavaScript",
"Element Description" : "<WKWebView:0x7ff6ca0b2a00; AX=N; AX.id='page_view'; AX.frame={{0, 0}, {414, 736}}; AX.activationPoint={207, 368}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {414, 736}}; opaque; alpha=1>",
"Failed Constraint(s)" : "kindOfClass('UIWebView')",
"All Constraint(s)" : "(!(isSystemAlertViewShown) && kindOfClass('UIWebView'))",
"Recovery Suggestion" : "Adjust element properties so that it matches the failed constraint(s)."
}
我检查了 EarlGrey 在控制台中打印的 UI 层次结构堆栈,我无法在 html 中发现 UI 元素。
关于如何使用 EarlGrey 来测试 WKWebView 中加载的 html 的任何建议?
谢谢,瑞诗玛