ios - 如何检查元素是否可点击

标签 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 与较小的设备),后退按钮元素会发生变化。

最佳答案

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

关于ios - 如何检查元素是否可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290857/

相关文章:

iOS7 导航栏+状态栏文字颜色

ios - Swift : value of optional type '[Int : Int]?' not unwrapped; did you mean to use '!' or '?' ? 问题

ios - 如何使用 segue 在下一个 Controller 中显示单元格标题?

swift - NSToolbarFlexibleSpaceItem 是 Swift 中 NSSplitViewItem 的约束

iOS 应用程序因苹果测试而崩溃

objective-c - 如何在返回按钮单击-> iphone 时在 UIViewController 中隐藏键盘

ios - 无法将时间 'Int' 的值转换为 Swift 2 中的预期参数类型 'NSPropertyListReadOptions'

swift - 设置突变 TableViewController 的背景图像

ios - 在主视图层上方添加 subview

ios - Swift 3/Xcode 8.2 - viewDidLoad 中的切换 View 不起作用