我正在尝试新的xcode ui测试并获得以下错误
func testLogout() {
let app = XCUIApplication()
let tablesQuery = app.tables
let passwordSecureTextField = tablesQuery/*@START_MENU_TOKEN@*/.secureTextFields["Password"]/*[[".cells.secureTextFields[\"Password\"]",".secureTextFields[\"Password\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/
passwordSecureTextField.tap()
passwordSecureTextField/*@START_MENU_TOKEN@*/.pressForDuration(1.2);/*[[".tap()",".pressForDuration(1.2);"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/
app/*@START_MENU_TOKEN@*/.menuItems["Paste"]/*[[".menus.menuItems[\"Paste\"]",".menuItems[\"Paste\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.tap()
let poReceiverNavigationBar = app.navigationBars["PO Receiver"]
poReceiverNavigationBar.buttons["Login"].tap()
let menuIcoButton = poReceiverNavigationBar.buttons["menu ico"]
menuIcoButton.tap()
错误是
no maches found for "menu ico" Button
实际上它的自定义Bar Button项目并没有通过IBOutlet连接。问题是我可以通过坐标或smth以其他方式访问该按钮吗?或者其他一些解决方案
答案 0 :(得分:2)
是的,您可以按特定坐标选择:
extension XCUIElement {
func tapAtPosition(let position: CGPoint) {
let cooridnate = self.coordinateWithNormalizedOffset(CGVector(dx: 0, dy: 0)).coordinateWithOffset(CGVector(dx: position.x, dy: position.y))
cooridnate.tap()
}
}