如何找到作为子视图添加到视图的子视图的tableView

时间:2018-12-26 15:32:25

标签: swift tableview xctest subview ios-ui-automation

我正在尝试自动化一个屏幕,该屏幕上有一个单元格,点击该单元格会弹出表格视图。我使用的是苹果公司的原生框架XCTest。

我想在该表视图中声明元素(它已经注入了子视图),但是我什至看不到该表视图。我已经添加了accessibilityIdentifier,我可以将其视为Other元素,但是当我尝试获取其子代(子代)时,它什么也不返回。

这是屏幕截图: image

我添加了:

self.isAccessibilityElement = true
self.accessibilityIdentifier = "someSubview"

我试图记录并查看将要执行的操作,它崩溃了,或者编写了一个代码,该代码正在点击主视图上方弹出的表视图下方的主视图中的某些元素。

tableview已添加了子视图:

tableView.addSubview(self.paymentTypeSelectorView)

通常,当我这样做时:

po XCUIApplication() 

-此命令返回我可以与之交互的所有元素。并且该子视图(表视图)中没有元素。 我尝试过以下命令:

po getApp()?.tables.otherElements["someSubview"].children(matching: .any)

预期结果:po XCUIApplication()将返回屏幕上的所有元素,包括来自tableview(子视图)的元素:Label1,Label2,Label3。

实际结果:无论执行什么操作,XCUIApplication都将返回相同的输出,而表视图中没有这些元素,就好像这些元素(那些标签1,2,3)不在屏幕上一样。

任何人都对这类东西有经验吗? 我仍然不确定我是在做错什么,还是XCTest框架的局限性,还是只是以自动化不友好的方式完成了实现...

0 个答案:

没有答案