在 UITestCase 期间使用可访问性标识符识别 UISearchBar
Identify UISearchBar with accessibility identifier during UITestCase
我的 UIViewController
上有一个 UISearchBar
。
但是 UISearchBar
默认情况下没有可访问性标识符,所以我尝试使用 "User Define Runtime Attribute".
定义手动可访问性标识符
但是在 UITestCase
写作期间,我无法使用 "User Define Runtime Attribute" 访问或识别 UISearchBar
。但我无法使用标识符访问它。我总是不得不使用我不想使用的占位符文本,因为它会在 "multi-language" 支持时引起问题。
关于这个问题我已经参考了堆栈溢出的答案,但是 none 符合我的要求。
请帮忙提供解决方案。
谢谢。
在应用程序中,当我使用用户定义运行时属性将 UISearchBar
的 accessibilityLabel
设置为 MySearchBar
时,如果您查看应用程序的 UI 层次结构,您可以看到以下内容:
Attributes: Application, 0x604000198050, pid: 18393, {{0.0, 0.0}, {414.0, 736.0}}, label: 'MyApp'
Element subtree:
→Application, 0x604000198050, pid: 18393, {{0.0, 0.0}, {414.0, 736.0}}, label: 'MyApp'
Window, 0x6000001993d0, Main Window, {{0.0, 0.0}, {414.0, 736.0}}
Other, 0x604000199a50, traits: 8589934592, {{0.0, 0.0}, {414.0, 736.0}}
Other, 0x600000197aa0, traits: 8589934592, {{0.0, 20.0}, {414.0, 56.0}}, identifier: 'MySearchBar'
Image, 0x604000198390, traits: 8589934596, {{0.0, 0.0}, {414.0, 76.0}}
SearchField, 0x60000019a4e0, traits: 146031248384, {{8.0, 30.0}, {398.0, 36.0}}
这应该能让您了解如何找到您的搜索栏。首先搜索类型为 other
的元素,该元素具有您设置到搜索栏的标识符,然后查找此类型为 searchBar
.
的元素的子元素
let searchField = XCUIApplication().otherElements["MySearchBar"].searchFields.firstMatch
searchField.tap()
searchField.typeText("Hello")
我的 UIViewController
上有一个 UISearchBar
。
但是 UISearchBar
默认情况下没有可访问性标识符,所以我尝试使用 "User Define Runtime Attribute".
但是在 UITestCase
写作期间,我无法使用 "User Define Runtime Attribute" 访问或识别 UISearchBar
。但我无法使用标识符访问它。我总是不得不使用我不想使用的占位符文本,因为它会在 "multi-language" 支持时引起问题。
关于这个问题我已经参考了堆栈溢出的答案,但是 none 符合我的要求。
请帮忙提供解决方案。 谢谢。
在应用程序中,当我使用用户定义运行时属性将 UISearchBar
的 accessibilityLabel
设置为 MySearchBar
时,如果您查看应用程序的 UI 层次结构,您可以看到以下内容:
Attributes: Application, 0x604000198050, pid: 18393, {{0.0, 0.0}, {414.0, 736.0}}, label: 'MyApp'
Element subtree:
→Application, 0x604000198050, pid: 18393, {{0.0, 0.0}, {414.0, 736.0}}, label: 'MyApp'
Window, 0x6000001993d0, Main Window, {{0.0, 0.0}, {414.0, 736.0}}
Other, 0x604000199a50, traits: 8589934592, {{0.0, 0.0}, {414.0, 736.0}}
Other, 0x600000197aa0, traits: 8589934592, {{0.0, 20.0}, {414.0, 56.0}}, identifier: 'MySearchBar'
Image, 0x604000198390, traits: 8589934596, {{0.0, 0.0}, {414.0, 76.0}}
SearchField, 0x60000019a4e0, traits: 146031248384, {{8.0, 30.0}, {398.0, 36.0}}
这应该能让您了解如何找到您的搜索栏。首先搜索类型为 other
的元素,该元素具有您设置到搜索栏的标识符,然后查找此类型为 searchBar
.
let searchField = XCUIApplication().otherElements["MySearchBar"].searchFields.firstMatch
searchField.tap()
searchField.typeText("Hello")