gpt4 book ai didi

ios - 由于从 8.2 更新到 Xcode 8.3.2,我们的 UI 测试失败了,因为 UItableView 不再响应 swipeUp() 或 swipeDown()

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:22:17 25 4
gpt4 key购买 nike

我有一些 UI 测试在过去的一年里一直有效,它们每晚都在运行,我们设置了一个监视器,这样我们就可以看到它们何时失败,而且它们已经好几个月没问题了。

今天早上,我们将机器更新到 Xcode 8.3.2,并将构建服务器从 8.2 更新到 8.3.2,现在 UI 测试不再通过。

我有一个 tableView,里面有 12 个单元格,前 6 个是可见的,但我想按下最后一个单元格,所以我调用 swipeUp() 来滚动 tableView。通常,tableView 会滚动一两秒,然后我想要的单元格变得可见,我能够断言它存在并在其上调用 tap()。

但是现在,当观察 UI 测试运行时,当调用 swipeUp() 方法时,它不再滚动很长时间。它似乎只滚动了几毫米然后就停止了,这意味着断言失败并且我们无法点击单元格因此我们所有的 UI 测试都失败了。

我在网上搜索过这方面的信息,除了this small snippet 外找不到太多信息。这似乎和我有同样的问题。

我已尝试按照建议删除 swipeUp() 调用,但这似乎无法解决问题,我们已经在多个 Xcode 安装和笔记本电脑上进行了测试,效果相同。

只是寻求一些建议,想知道是否有其他人看到过这个问题?

最佳答案

这个问题有几种可能的解决方案。

  1. tap() 方法。当您使用 tap() 方法时,XCTestCase 可以自动滚动到给定元素并点击它。

    let predicate = NSPredicate(format: "label == %@", "12")
    let cell = table.cells.containing(predicate).element
    cell.tap()
  2. 您可以使用 XCUICoordinate.press(forDuration:thenDragTo:) 而不是使用 swipeUp() 方法。这有点棘手,因为您必须处理 XCUICoordinate 对象。

    从底部滑动到顶部的示例用法:

    let bottom = table.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.9))
    let top = table.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.1))

    bottom.press(forDuration: 0.1, thenDragTo: top)

    请注意值 0.90.1

    • 如果您使用 1.0 作为最低值,您将打开 Control Center
    • 如果您使用上述方法实现“swipeDown”并使用 0.0 作为最高点,您将打开通知中心
  3. 如果需要多次滑动,您可以使用 while 循环(或类似循环)向上滚动直到单元格可见:

    let predicate = NSPredicate(format: "label == %@", "12")
    let cell = table.cells.containing(predicate).element
    while !cell.isHittable {
    table.swipeUp()
    }

    当然,还需要一些其他的中断条件;)

  4. 您可以使用 AutoMate具有滑动辅助方法的库,例如:swipe(to:)

    let predicate = NSPredicate(format: "label == %@", "12")
    let cell = table.cells.containing(predicate).element
    table.swipe(to: scrollPage.topButton)

    此外,该库可以处理键盘可见的情况、处理不同的设备方向(rdar://31529903gist)等等。

关于ios - 由于从 8.2 更新到 Xcode 8.3.2,我们的 UI 测试失败了,因为 UItableView 不再响应 swipeUp() 或 swipeDown(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43616037/

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