作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 UIStackView
中的 View 编写 UI 测试就在 MKMapView
里面.
这是 MWE 的一个片段。我创建了一个 MKMapView
添加了 UIStackView
带两个 UIView
s 作为 subview 。
let map = MKMapView()
let view1 = UIView()
let view2 = UIView()
let stackView = UIStackView()
stackView.addArrangedSubview(view1)
stackView.addArrangedSubview(view2)
map.addSubview(stackView)
view.addSubview(map)
accessibilityIdentifier
为每个元素设置
isAccessibilityElement
属性为真。
view1.accessibilityIdentifier = "view1"
view2.accessibilityIdentifier = "view2"
stackView.accessibilityIdentifier = "stackView"
view1.isAccessibilityElement = true
view2.isAccessibilityElement = true
stackView.isAccessibilityElement = true
UIStackView
带有标识符 'stackView' 但不是
UIViews
.
Element subtree:
→Application, 0x6000030080e0, pid: 11856, label: 'UITestWithStackView'
Window (Main), 0x600003009500, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003009420, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003009340, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003009260, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003009180, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x6000030090a0, {{7.0, 348.0}, {400.0, 200.0}}, identifier: 'stackView'
Other, 0x600003008fc0, {{0.0, 0.0}, {414.0, 896.0}}
Map, 0x600003008ee0, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003008e00, {{0.0, 0.0}, {414.0, 896.0}}
Link, 0x600003008d20, {{375.4, 841.3}, {28.6, 10.7}}, label: 'Legal'
Window, 0x600003008c40, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003008b60, {{0.0, 0.0}, {414.0, 896.0}}
Other, 0x600003008a80, {{0.0, 0.0}, {414.0, 896.0}}
最佳答案
嵌套堆栈 View 也有同样的问题。在我的例子中,它是一个带有标签的 stackView,它嵌套在另外两个堆栈中。我需要访问标签。使用 AccessiblityElements 有助于访问较低堆栈中的元素。
rootStackView.accesibilityElements[nestedElementsThatNeedToMakeAccessible]
如果我正确理解你的情况,试试这个
stackView.accessibilityElements[view1, view2]
map.accessibilityElements[stackView]
关于ios - 如何在 UITests 的 MkMapView 中访问嵌套在 UIStackView 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262666/
我是一名优秀的程序员,十分优秀!