UI自动化:元素如何存在但不可命中?

时间:2015-11-06 18:57:45

标签: objective-c ios-ui-automation

好的,我在这里画一个空白。第一个条件是真的,第二个不是我运行它。怎么会这样?

我正在使用最新的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");
}

[usernameTextField tap]; 当我点击它时,应用程序失败: UI测试活动: 断言失败:UI测试失败 - 应用程序无法在30.0秒内停顿

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Hittablility指示是否可以使用给定点处理手势。

鉴于UI测试将视图层次结构扁平化为基于查询的系统,这只意味着如果视图的一部分在屏幕上,则它是可命中的,否则它是不可命中的。

例如,如果我有一个UITableView有一堆单元格,那么你可以在屏幕上看到的第一个单元格是可命中的。由于屏幕不亮而无法看到的最后一个单元格不可用。

元素仍然可以存在于坐标空间中并且在屏幕外。在前面的示例中,长表视图的最后一个单元格仍然存在,只是无法与它进行交互。