Xcode 7 UI测试访问栏按钮项

时间:2015-10-29 14:10:03

标签: xcode swift xcode-ui-testing

我正在尝试新的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以其他方式访问该按钮吗?或者其他一些解决方案

1 个答案:

答案 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()
        }
    }