Xcode 14,XCUITests -点击不适用于WebView默认完成按钮

hpxqektj  于 2022-11-17  发布在  其他
关注(0)|答案(2)|浏览(141)

我们已经开始采用新版本的Xcode 14,我们看到了很多测试失败。很多测试失败主要是那些应用程序内部的网页视图。在尝试了所有不同的替代方案后,我们无法点击完成按钮;这是我们在应用程序中打开Web视图时的默认按钮。

**请列出重现此问题所采取的步骤:**我们的测试是尝试点击Web视图内的完成按钮并看到错误(浏览器的默认完成按钮)。我们可以检查返回true但无法点击的按钮是否存在。请参见附件

这肯定是Xcode 14的bug。我也测试了Xcode 13.4.1的早期版本,没有发现任何错误
处理webview done按钮的其他方法

ykejflvf

ykejflvf1#

extension XCUIApplication {

    func tapCoordinate(at point: CGPoint) {
         let normalized = coordinate(withNormalizedOffset: .zero)
         let offset = CGVector(dx: point.x, dy: point.y)
         let coordinate = normalized.withOffset(offset)
         coordinate.tap()
     }

}

借助How to tap on a specific point using Xcode UITests的帮助

sqserrrh

sqserrrh2#

@Nish answer工作正常,所以我添加了一点变化来获取按钮的坐标并点击它。(注:这将适用于任何屏幕/模拟器大小,因为它不依赖于显式传递的CGPoint)

if let doneButton = app.buttons["Done"].waitAndHandleFailure(timeout: JourniTestConstants.asyncTimeout) {
        let doneCoordinates = app.coordinate(withNormalizedOffset: .zero).withOffset(.init(dx: doneButton.frame.midX, dy: doneButton.frame.midY))
        doneCoordinates.tap()
    }

相关问题