iPad模拟器上的多个“更多”按钮。如何缩小要单击哪一个(任何一个)的范围?

Multiple "More" buttons on iPad simulator. How do I narrow it down which one to click (either one)?

提问人:InfiniteLoop 提问时间:2/10/2023 更新时间:10/7/2023 访问量:26

问:

我正在尝试点击XCUITest中的按钮:More

XCUIElement* moreKey = self.app.keys[@"more"];
[moreKey tap];

在 iPhone 模拟器上它工作正常,但在 iPad 模拟器上,当我尝试点击它时它会崩溃:

Failed to Error Domain=com.apple.dt.xctest.ui-testing.error Code=10006 
"Multiple matching elements found for <XCUIElementQuery: 0x600000c51c20>
...

问题是它在iPad上找到了“更多”按钮的多个实例(与iPhone不同,它有两个):

...}
    ↪︎Find: Elements matching predicate '"more" IN identifiers'
      Output: {
        Key, 0x15e670f80, {{0.0, 1049.0}, {132.0, 60.0}}, identifier: 'more', label: 'numbers'
        Key, 0x15e678570, {{546.0, 1049.0}, {98.5, 60.0}}, identifier: 'more', label: 'numbers'

所以,它似乎不知道该点击哪一个。

我发现了类似的问题,但对于自定义按钮,解决方案是使其标识符唯一。这不适用于苹果自己的“更多”键,我无法控制其标识符。

我该如何解决? 我可以以某种方式在这里申请吗?elementBoundByIndex:

Objective-C 用户界面 iPad 、XCUITEST GUI-testing

评论


答:

1赞 InfiniteLoop 2/10/2023 #1

XCUIElement* moreKey = [self.app.keys[@"more"] firstMatch]做到了诀窍。

评论

1赞 Mike Collins 2/10/2023
假设你想要第一个(点击第二个有什么作用?),是的,你明白了!如果您想点击最后一场比赛,也可以使用类似的技巧。stackoverflow.com/a/51523441/2533443
1赞 InfiniteLoop 2/10/2023
点击第二个做同样的事情。iPad 键盘要大得多,因此 Apple 为方便起见提供了第二套 More 和 Shift。我不在乎点击哪一个 - 我只是想修复它被两个相同的键混淆时崩溃的问题。谢谢!