iOS测试自动化的复杂视图,UIAccessabilityContainer?

问题描述

我正在为具有复杂视图层次结构的应用程序构建UI自动化测试。

在我的情况下,我想使用自动化来点击UITextField子类。该文本字段包含在collectionView中,而它本身又包含在另一个collection视图中。

该textview具有已知的可访问性标签+标识符,但我找不到通过普通XCTest api访问此视图的任何方法。例如,以下内容找不到该元素:

let app = XCUIApplication()
let textField = app.textFields["FOO"]
let textField2 = app.secureTextFields["FOO"]
let textField3 = app.otherElements["FOO"]

作为获取文本字段引用的另一种方法,我尝试将其设置为UIAccessabilityContainer,但不确定是否正确使用了它。

//inside the textfield

//should return false if using UIAccessibilityContainer?
self.isAccessibilityElement = false
let e = UIAccessibilityElement(accessibilityContainer: self)
e.accessibilityIdentifier = placeholder
e.accessibilityLabel = placeholder
e.accessibilityTraits = .allowsDirectInteraction
            
//append this element to the window's list of elements
var eles = window?.accessibilityElements ?? []
eles.append(e)
window?.accessibilityElements = eles

执行此操作似乎使用“常规” api破坏了我现有的所有自动代码。正确的解决方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...