UI AUTOMATION:元素如何存在但不可命中?
Posted
技术标签:
【中文标题】UI AUTOMATION:元素如何存在但不可命中?【英文标题】:UI AUTOMATION: How can an element exists but not be hittable? 【发布时间】:2015-11-06 18:57:45 【问题描述】:好的,所以我在这里画一个空白。第一个条件为真,第二个条件不是当我运行它时。这怎么可能?
我正在使用最新的 xcode,最新的操作系统。
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *usernameTextField = app.textFields[@"用户名"];
if (usernameTextField.exists)
NSLog(@"condition returns true");
else if ( usernameTextField.hittable)
NSLog(@"doesn't execute");
[用户名文本字段点击]; 当我点击它时应用程序失败: UI 测试活动: 断言失败:UI 测试失败 - 应用未能在 30.0 秒内停顿
有什么想法吗?
【问题讨论】:
如果你希望两个条件都为真,为什么 else 语句中的第二个条件为真?如果第一个为真,第二个肯定不会执行 如果某物存在,但不可命中,可能它被隐藏或为零帧? 【参考方案1】:Hittblility 是一个手势是否可以使用给定点处理的指标。
鉴于 UI 测试将视图层次结构扁平化为基于查询的系统,这仅意味着如果视图的一部分在屏幕上,则它是可点击的,否则不可点击。
例如,如果我有一个 UITableView
有一堆单元格,那么您可以在屏幕上看到的第一个单元格是可点击的。最后一个因为不在屏幕上而看不到的单元格是不可点击的。
一个元素仍然可以存在于坐标空间中并且不在屏幕上。在前面的示例中,长表视图的最后一个单元格仍然存在,只是无法与之交互。
【讨论】:
以上是关于UI AUTOMATION:元素如何存在但不可命中?的主要内容,如果未能解决你的问题,请参考以下文章
为什么在selenium中使用元素列表是行不通的,但如果我使用WebDriver它就可以工作
UI Automation Instruments:如何重置应用程序状态?
Instruments:UI Automation:iPhone app - 如何使用 NSRect 的参数点击“null”按钮?