【问题标题】:XCUIT-Swift-How to tap only on visible elementsXCUIT-Swift-如何仅点击可见元素
【发布时间】:2021-09-02 06:55:35
【问题描述】:

我想在我的视图中点击“下一步”按钮

lazy var Next = app.butons["Next"] Next.tap()

我遇到错误

获取匹配快照失败:为 找到多个匹配元素。

【问题讨论】:

  • 试试这个懒惰的 var Next = app.butons["Next"].firstMatch.tap()

标签: ios swift automation xcuitest


【解决方案1】:

忽略拼写错误,XCTest 告诉您的是,有多个内容与您要识别的内容相匹配。知道您具体针对的是哪一个会很有帮助,但您可能会盲目地尝试点击第一个:

app.buttons["Next"].firstMatch.tap()

如果您需要获得第二个,则必须操作匹配数组并获取索引 1 处的元素(0 是第一个,使用前面的代码更便宜):

app.buttons["Next"].element(boundBy: 1).tap()

我发现获得第二个或最后一个匹配项是我经常做的事情,因此我使用计算属性 var secondMatchvar lastMatch 扩展 XCUIElementQuery,其中 secondMatch 返回上述元素,lastMatch 如下:

extension XCUIElementQuery {
  var lastMatch: XCUIElement {
    return self.element(boundBy: self.count - 1)
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多