首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Xcode 7 UI测试中访问嵌套UIElements

在Xcode 7 UI测试中访问嵌套UIElements
EN

Stack Overflow用户
提问于 2015-10-02 17:43:16
回答 4查看 6.5K关注 0票数 5

我在我正在测试的应用程序的屏幕上定位XCUIElements有困难。我意识到您可以访问一个按钮,例如:

代码语言:javascript
复制
app.buttons[].elementBoundByIndex(0)

但问题是,有时无法找到组件。就像在UITableView的单元格中有按钮的情况一样。我试着做一个XCUIElementQuery来找到按钮,但它不在那里。我试图查找表、表视图或集合视图,即使它们在视图控制器中,也不会在UI测试中找到。返回数组的计数将为零。

我最初试图记录测试,但单击要访问的元素无效。Xcode检测到它是“其他元素”,当尝试点击时,回放应用程序不会前进。

是否有一种高级方法来访问像UI层次结构中的UIView那样的组件来级联?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-04-14 17:53:43

当时我还不知道这一点,但我要找的基本上是debugDescription:

当您到达要调试的区域时,设置一个断点。然后

po print(app.debugDescription)

在调试控制台中。那么,您将看到层次结构。

票数 7
EN

Stack Overflow用户

发布于 2015-10-02 18:01:40

理想情况下,您应该在按钮上设置一个accessibilityIdentifier,并通过该按钮搜索它。对于屏幕上的元素,accessibilityIdentifier应该是唯一的。您可以在Interface (命令选项-3)中的标识检查器中或在代码中直接设置accessibilityIdentifier。一旦您有了一个查询,查询如下:

代码语言:javascript
复制
app.buttons["SomeAccessibilityIdentifier"]
票数 5
EN

Stack Overflow用户

发布于 2016-11-17 19:25:15

Ryan Poolos答案对我来说是最好的答案,因为它用嵌套的UI元素解决了我的问题。

我们必须通过移除堆栈中的超级视图上的一些可访问性标识符来解决这个问题。虽然不太理想,但在不改变实际功能的情况下,它确实能正常工作。- Ryan Poolos

因此,考虑到这一点,我找到了有问题的元素的xib文件,选择了元素,选择了右侧面板上的选项卡“selected检查器”,并取消了可访问性复选框。

然后我做了一个元素的记录,结果是:

代码语言:javascript
复制
[[[[[XCUIApplication alloc] init].scrollViews.tables childrenMatchingType:XCUIElementTypeOther] elementBoundByIndex:index] childrenMatchingType:XCUIElementTypeButton].element;

注意XCUIElementTypeOther在查询中的位置。当启用了可访问性标识符时,情况就不是这样了,我将得到:

代码语言:javascript
复制
    [[[[[XCUIApplication alloc] init].scrollViews.tables.otherElements containingType:XCUIElementTypeStaticText identifier:@"username"] childrenMatchingType:XCUIElementTypeButton].element tap];

显然,我不会知道用户名,因为它总是会改变,这是一个大问题。但是在移除可访问性标识符之后,

代码语言:javascript
复制
containingType:XCUIElementTypeStaticText identifier:@"username"

变到

代码语言:javascript
复制
childrenMatchingType:XCUIElementTypeOther] elementBoundByIndex:index

成功:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32912885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档