Automation 为什么XTest代码无法在iOS13.3(在13.2中使用)中的WKWebView中按值查找textField
Xcode 11.3附带的iOS 13.3模拟器中的XTest自动化/可访问性行为发生了一些变化。我的UI测试代码突然在WKWebView中找不到文本字段 我有一个UI测试,它已经运行了很长时间,包括在iOS 13.2模拟人生中。测试将查找具有特定值的文本字段。下面是一些测试HTML,使用Automation 为什么XTest代码无法在iOS13.3(在13.2中使用)中的WKWebView中按值查找textField,automation,accessibility,textfield,wkwebview,xctest,Automation,Accessibility,Textfield,Wkwebview,Xctest,Xcode 11.3附带的iOS 13.3模拟器中的XTest自动化/可访问性行为发生了一些变化。我的UI测试代码突然在WKWebView中找不到文本字段 我有一个UI测试,它已经运行了很长时间,包括在iOS 13.2模拟人生中。测试将查找具有特定值的文本字段。下面是一些测试HTML,使用loadFileURL加载到WKWebView中: <body> <div> <input type="text" placeholder="User na
loadFileURL
加载到WKWebView中:
<body>
<div>
<input type="text" placeholder="User name">
</div>
<body>
如果我在HTML中的
前面的
中添加一个字符,那么测试就可以工作了
如果我在iOS 13.2 sim卡上运行相同的代码,即使使用Xcode 11.3,也可以正常工作。它只在iOS 13.3 sim卡上出现故障
有人能解释一下发生了什么吗?你有没有找到一种不修改HTML的方法来解决这个问题?没有。我已经提出了一个苹果反馈助手问题(FB7492689),但还没有发表评论。我怀疑这个问题也会导致在设备上读取HTML时出现画外音问题,但我还没有对此进行测试。苹果可能比开发者代码级报告对用户级可访问性缺陷报告更敏感。仅供参考-
func testExample() {
// UI tests must launch the application that they test.
let app = XCUIApplication()
app.launch()
// Enter text in the username field
let userNameField = app.webViews.textFields["User name"]
if userNameField.waitForExistence(timeout: 10) {
userNameField.tap()
userNameField.typeText("Harry Potter")
}
XCTAssert(userNameField.exists)
}