swift - 在 XCUITest 中,深度嵌套的元素具有错误的辅助功能

标签 swift xcode xcuitest

在我的应用程序中,我的结构如下:

-->Parents
---->TableView
------>TableViewCell (identifier: "MyTableViewCell")
-------->CollectionView
---------->CollectionViewCell
------------>Label

但是,当我使用 XCUIApplication().debugDescription 时,它给了我这个:

-->Parents
---->TableView
------>TableViewCell
-------->StaticText (instead of collectionView.cell.label)

因此,当我查询 XCUIApplication().cells["MyTableViewCell"].collectionViews 时,测试因未找到元素而失败。

因此,XCode 似乎忽略了深度嵌套的 XCUIElement,而只是将它们全部放在其他父级上。但是,如果我使用开发人员工具 > 可访问性检查器,那么我可以看到正确的结构。但在代码中它不起作用并且呈现方式不同。

如何正确解决这个问题?

最佳答案

我遇到了类似的问题。 它帮助我在 TableViewCell 中使用 accessibilityElements(我在这里找到了建议 Custom UITableViewCell accessibility)

尝试在您的 TableViewCell 中设置

accessibilityElements = [CollectionView] 

关于swift - 在 XCUITest 中,深度嵌套的元素具有错误的辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819564/

相关文章:

iphone - UITableView 类似 NSTableView

ios - XCTestCase 失败后停止

swift - 如何在 xctest 中使用 swift 单击 map 注释来访问标注 View

objective-c - 仅当通过 UI 自动化的 UI 测试目标重命名文件夹时,Domain=NSCocoaErrorDomain Code=513

regex - 用 "1Don' 替换 "_1Don_t_do_that"t do that"

iphone - 您可以根据地址在 Mapview 中创建注释吗?

swift - 在 Swift 中,访问修饰符 internal 和 public 有什么区别?

ios - 了解 Swift 中货币的 NumberFormatter

ios - 从具有多个返回值的函数创建常量

ios - 在 Swift 中将 [String : Any! ] 转换为 URLComponents