我想在Fastlane快照中使用Xcode UI测试来制作Cordova应用程序的屏幕截图。基本上,由于我的整个应用程序只是一个Web视图,因此所有Xcode UI测试帮助程序方法都变得无关紧要,我只想点击特定的点,例如tap(x: 10, y: 10)应该在该点处进行点击{10px; 10px}。
tap(x: 10, y: 10)
{10px; 10px}
那可能很简单,但是我不知道该怎么做。
谢谢。
您可以使用XCUICoordinateAPI轻击特定点。不幸的是,您不能只说出“ tap 10,10”以引用像素坐标。您将需要创建一个相对于实际视图有相对偏移的坐标。
XCUICoordinate
我们可以使用提到的Web视图与相对坐标进行交互。
let app = XCUIApplication() let webView = app.webViews.element let coordinate = webView.coordinateWithNormalizedOffset(CGVector(dx: 10, dy: 10)) coordinate.tap()
旁注,但是您是否尝试过直接与Web视图进行交互?使用app.links["Link title"].tap()or 获得了很多成功app.staticTexts["A different link title"].tap()。我放在一起的一个演示应用程序演示了与Web视图的交互。
app.links["Link title"].tap()
app.staticTexts["A different link title"].tap()
更新 :正如Michal W.在评论中指出的那样,您现在可以 直接 点击坐标,而不必担心标准化偏移量。
let normalized = webView.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0)) let coordinate = normalized.withOffset(CGVector(dx: 10, dy: 10)) coordinate.tap()
注意,我将0,0传递给归一化向量,然后将实际点10,10传递给第二个调用。