在我的一个视图控制器中,我有如下代码:
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测试并选择 searchBar 时,都会出现以下错误:
时间戳事件匹配错误:找不到匹配的元素
我尝试调试以获取 searchBar 和以下代码,但是它与任何元素都不匹配,并且断言失败。
let searchField = app.tables["ItemList"].otherElements.element(boundBy: 0).otherElements["SearchField"]
XCTAssertTrue(searchField.exists)
您能告诉我我做错了什么吗?如何访问和测试 searchBar ? 预先感谢。
答案 0 :(得分:1)
内置记录器不好,您应该自己编写测试代码。
使用print(app.debugDescription)
您的XCUIElementQuery有点长。尝试像app.otherElements["SearchField"]
答案 1 :(得分:1)
您可以从底部到顶部使用Debug View Hierarchy或XCode开放式开发工具Accesibility Inspector查找未启用辅助功能的视图。