gpt4 book ai didi

ios - 如何在 UITests 的 MkMapView 中访问嵌套在 UIStackView 中的元素?

转载 作者:行者123 更新时间:2023-12-04 12:02:56 25 4
gpt4 key购买 nike

我想为 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

但是,在 app 元素子树中没有可见的堆栈 View 的 subview ,也无法访问它们。
您可以看到 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com