XCUITest - 找不到匹配的元素
XCUITest - Failed to find matching element
在我的一个视图控制器中,我有如下代码:
class ViewController: UIViewController {
@IBOutlet weak var _tableView: UITableView!
private lazy var searchBar: UISearchBar = {
let searchBar:UISearchBar = UISearchBar()
searchBar.isAccessibilityElement = true
searchBar.accessibilityLabel = "SearchField"
searchBar.placeholder = "Search..."
searchBar.sizeToFit()
searchBar.isTranslucent = false
searchBar.autocapitalizationType = .none
searchBar.returnKeyType = .done
searchBar.delegate = self
return searchBar
}()
override func viewDidLoad() {
super.viewDidLoad()
isAccessibilityElement = true
accessibilityLabel = "ViewController"
_tableView.isAccessibilityElement = true
_tableView.accessibilityLabel = "ItemList"
_tableView.tableHeaderView = searchBar
}
}
现在每当我尝试记录 UI 测试和 select searchBar 时,我都会收到以下错误:
Timestamped Event Matching Error: Failed to find matching element
我尝试调试以获取 searchBar 和以下代码,但它不匹配任何元素并且断言失败。
let searchField = app.tables["ItemList"].otherElements.element(boundBy: 0).otherElements["SearchField"]
XCTAssertTrue(searchField.exists)
你能告诉我我做错了什么吗?如何访问和测试 searchBar?
提前致谢。
内置录音机不好,还是自己写测试代码吧
在 VoiceOver 层次结构中查找具有 print(app.debugDescription)
的元素
您的 XCUIElementQuery 比应有的要长一点。尝试将其缩短为 app.otherElements["SearchField"]
您可以使用 Debug View Hierarchy 或 XCode 打开开发人员工具 Accessibility Inspector 从下到上查找未启用辅助功能的视图。
在我的一个视图控制器中,我有如下代码:
class ViewController: UIViewController {
@IBOutlet weak var _tableView: UITableView!
private lazy var searchBar: UISearchBar = {
let searchBar:UISearchBar = UISearchBar()
searchBar.isAccessibilityElement = true
searchBar.accessibilityLabel = "SearchField"
searchBar.placeholder = "Search..."
searchBar.sizeToFit()
searchBar.isTranslucent = false
searchBar.autocapitalizationType = .none
searchBar.returnKeyType = .done
searchBar.delegate = self
return searchBar
}()
override func viewDidLoad() {
super.viewDidLoad()
isAccessibilityElement = true
accessibilityLabel = "ViewController"
_tableView.isAccessibilityElement = true
_tableView.accessibilityLabel = "ItemList"
_tableView.tableHeaderView = searchBar
}
}
现在每当我尝试记录 UI 测试和 select searchBar 时,我都会收到以下错误:
Timestamped Event Matching Error: Failed to find matching element
我尝试调试以获取 searchBar 和以下代码,但它不匹配任何元素并且断言失败。
let searchField = app.tables["ItemList"].otherElements.element(boundBy: 0).otherElements["SearchField"]
XCTAssertTrue(searchField.exists)
你能告诉我我做错了什么吗?如何访问和测试 searchBar? 提前致谢。
内置录音机不好,还是自己写测试代码吧
在 VoiceOver 层次结构中查找具有
print(app.debugDescription)
的元素
您的 XCUIElementQuery 比应有的要长一点。尝试将其缩短为
app.otherElements["SearchField"]
您可以使用 Debug View Hierarchy 或 XCode 打开开发人员工具 Accessibility Inspector 从下到上查找未启用辅助功能的视图。