如何检查元素是不是可点击
Posted
技术标签:
【中文标题】如何检查元素是不是可点击【英文标题】:How to check if element is tappable如何检查元素是否可点击 【发布时间】:2015-12-15 13:45:00 【问题描述】:我正在为其开发 Xcode UI 测试的应用有多个返回按钮。一个是可点击的,另一个不是。我尝试使用 do/catch 进行包装,但如果任何一行失败,测试将失败。
app.navigationBars.buttons["Back"] 有多个匹配项,两者都有:
app.navigationBars.childrenMatchingType(.Button).elementBoundByIndex(0)
和
app.navigationBars.childrenMatchingType(.Button).elementBoundByIndex(1)
是否可以尝试一种,如果没有,可以尝试另一种吗?或者检查元素是否可点击?
根据设备的大小(6+ 和 iPad 与较小的设备),后退按钮元素会发生变化。
【问题讨论】:
【参考方案1】:基于@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
。
【讨论】:
我会删除我的答案,因为你的答案是我的正确版本。 :) 没想到这么简单和有条理。谢谢! 是否可以添加带有元素的标签?我需要以 bfs/dfs 样式浏览所有屏幕。那么我们如何跟踪哪个元素已经被点击了呢?以上是关于如何检查元素是不是可点击的主要内容,如果未能解决你的问题,请参考以下文章
Selenium Webdriver:如何检查特定屏幕上是不是存在 ui 元素,无论它当前是不是可见/可点击