2015-12-15 51 views
2

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

app.navigationBars.buttons [ “后退”]有多个匹配,既:

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

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

是否可以试一试,如果没有做其他的吗?或者检查元素是否可以点击?

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

回答

2

大厦@ dasdom的答案,你可以做以下的斯威夫特:

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

注达button是不可选的,所以没有?是必需的。此外,枚举不会直接转换,因此应使用.Button

+3

我将删除我的答案,因为你的答案是我的正确版本。 :) – dasdom

+0

没有意识到这是简单而有组织的。谢谢! –

+0

是否可以添加元素的标签?我需要导航bfs/dfs风格的所有屏幕。那么我们如何保持跟踪哪个元素已被挖掘? –