Sie können einen bestimmten Punkt mit der XCUICoordinate
API antippen. Leider können Sie nicht einfach "10,10 tippen" sagen, wenn Sie auf eine Pixelkoordinate verweisen. Sie müssen die Koordinate mit einem relativen Versatz zu einer tatsächlichen Ansicht erstellen.
Wir können die erwähnte Webansicht verwenden, um mit der relativen Koordinate zu interagieren.
let app = XCUIApplication()
let webView = app.webViews.element
let coordinate = webView.coordinateWithNormalizedOffset(CGVector(dx: 10, dy: 10))
coordinate.tap()
Randnotiz, aber haben Sie mit der Web-Ansicht direkt versucht, die Interaktion? Ich hatte viel Erfolg mit app.links["Link title"].tap()
oder app.staticTexts["A different link title"].tap()
. Here's a demo app I put together demonstrating interacting with a web view.
aktualisieren: Wie Michal W. in den Kommentaren darauf hingewiesen, können Sie jetzt tippen ein direkt, koordinieren, ohne sich Gedanken über die Offset-Normalisierung.
let normalized = webView.coordinateWithNormalizedOffset(CGVector(dx: 0, dy: 0))
let coordinate = normalized.coordinateWithOffset(CGVector(dx: 10, dy: 10))
coordinate.tap()
Beachten Sie, dass ich 0,0 zum normalisierten Vektor und dann den tatsächlichen Punkt, 10,10, zum zweiten Anruf übergebe.
ich bin sicher, das nicht korrekt ist, wie ich hinzufügen 'coordinateWithOffset' benötigt x/y Hahn auszuführen: lassen cooridnate = self.coordinateWithNormalizedOffset (CGVector (dx: 0 , dy: 0)) .koordinateWithOffset (CGVektor (dx: position.x, dy: position.y)) cooridnate.tap() https://forums.developer.apple.com/thread/13373 –
Gute Idee! Danke @ MichałW. Ich habe den Kommentar in einem Update zur Antwort notiert, da dieser bereits akzeptiert wurde. –