XCUIT-Swift-如何仅点击可见元素

Posted

技术标签:

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

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

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

我遇到错误

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

【问题讨论】:

试试这个懒惰的 var Next = app.butons["Next"].firstMatch.tap() 【参考方案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)
  

【讨论】:

以上是关于XCUIT-Swift-如何仅点击可见元素的主要内容,如果未能解决你的问题,请参考以下文章

Vuejs - 如何在单个表单中仅提交可见元素(使用 Vuelidate)

如何使用 jQuery 仅获取 HTML 表格中的可见元素?

如何强制Selenium WebDriver点击当前不可见的元素?

使元素仅对 md 大小的设备可见

如何仅在视口之外的元素上执行 jquery Waypoints?

Selenium Webdriver:如何检查特定屏幕上是不是存在 ui 元素,无论它当前是不是可见/可点击