如何检查元素是否可以替换

时间:2015-12-15 13:45:01

标签: ios xcode swift swift2 xcode-ui-testing

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

app.navigationBars.buttons [“Back”]有多个匹配,都是:

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

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

是否有可能尝试一个,如果不做另一个?或者检查元素是否可以点击?

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

1 个答案:

答案 0 :(得分:2)

基于@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