如何检查元素是否可点击

How to check if element is tappable

我正在开发 Xcode UI 测试的应用程序在视图中有多个后退按钮。一个是可点击的,另一个不是。我尝试用 do/catch 包装,但如果任何一行失败,测试都会失败。

app.navigationBars.buttons["Back"] 有多个匹配项,两者都是:

app.navigationBars.childrenMatchingType(.Button).elementBoundByIndex(0)

app.navigationBars.childrenMatchingType(.Button).elementBoundByIndex(1)

是否可以尝试一种,如果不行就尝试另一种?或者检查元素是否可点击?

根据设备的大小(6+ 和 iPad 与较小的设备),后退按钮元素会发生变化。

基于@dasdom 的回答,您可以在 Swift 中执行以下操作:

let buttonQuery = app.navigationBars.element.childrenMatchingType(.Button)
var button = buttonQuery.elementBoundByIndex(0)
if (button.hittable == false) {
    button = buttonQuery.elementBoundByIndex(1)
}
button.tap()

注意 button 不是可选的,因此不需要 ?。此外,枚举不会直接转换,因此应使用 .Button