Bạn có thể nhấn vào một điểm cụ thể với XCUICoordinate
API. Rất tiếc, bạn không thể chỉ nói "nhấn 10,10" tham chiếu tọa độ pixel. Bạn sẽ cần phải tạo ra các phối hợp với một tương đối bù đắp cho một cái nhìn thực tế.
Chúng tôi có thể sử dụng chế độ xem web được đề cập để tương tác với toạ độ tương đối.
let app = XCUIApplication()
let webView = app.webViews.element
let coordinate = webView.coordinateWithNormalizedOffset(CGVector(dx: 10, dy: 10))
coordinate.tap()
Side lưu ý, nhưng bạn đã cố gắng tương tác với quan điểm trên web trực tiếp? Tôi đã có rất nhiều thành công khi sử dụng app.links["Link title"].tap()
hoặc app.staticTexts["A different link title"].tap()
. Here's a demo app I put together demonstrating interacting with a web view.
Cập nhật: Như Michal W. chỉ ra trong các ý kiến, bây giờ bạn có thể gõ một phối hợp trực tiếp, mà không lo lắng về bình thường bù đắp.
let normalized = webView.coordinateWithNormalizedOffset(CGVector(dx: 0, dy: 0))
let coordinate = normalized.coordinateWithOffset(CGVector(dx: 10, dy: 10))
coordinate.tap()
Lưu ý rằng tôi chuyển 0,0 đến vectơ chuẩn hóa và sau đó là điểm thực, 10,10, cho lần gọi thứ hai.
Nguồn
2016-03-29 14:39:20
Tôi không chắc điều đó là chính xác khi tôi cần thêm 'coordinateWithOffset' để thực hiện x/y tap: cho phép cooridnate = self.coordinateWithNormalizedOffset (CGVector (dx: 0 , dy: 0)). coordinateWithOffset (CGVector (dx: position.x, dy: position.y)) cooridnate.tap() https://forums.developer.apple.com/thread/13373 –
Ý tưởng hay! Cảm ơn @ MichałW. Tôi đã lưu ý nhận xét trong bản cập nhật cho câu trả lời vì nó đã được chấp nhận. –