2016-02-10 1 views
1
var pcheck = XCUIApplication().navigationBars["CREATE PIN"].staticTexts["CREATE PIN"].label 

    if pCheck == "CREATE PIN" { 
    app.childrenMatchingType(.Window).elementBoundByIndex(0).childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).elementBoundByIndex(1).childrenMatchingType(.SecureTextField).element.typeText("1111") 

    app.childrenMatchingType(.Window).elementBoundByIndex(0).childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).elementBoundByIndex(1).childrenMatchingType(.SecureTextField).element.typeText("1111") 
    } else { 
     print("No Pin needed") 
    } 

Пункт этого фрагмента - проверить, отображается ли определенное окно. Если окно есть, тогда мне нужно создать пин-код. Если нет ... просто продолжай. Это работает, когда окно присутствует. Однако, когда окно отсутствует, я получаю эту ошибку:Ui Тестирование неисправностей - Не найдено совпадений для «CREATE PIN» Navigationbar

отказа Ui Тестирование - спичек не найдено для «CREATE PIN» Панель навигации

Я попытался повторно сочинительство это к этому

если XCUIApplication(). navigationBars ["CREATE PIN"]. staticTexts ["CREATE PIN"]. label == "CREATE PIN" {fooBar}

И получил тот же результат. Все, что я хочу сделать, это проверить, есть ли окно, если оно принимает действие ... если оно не принимает другое.

Swift UI Тестирование

ответ

1

Вы пытаетесь получить StaticText элемент из несуществующего родителя.

let someElement = XCUIApplication().navigationBars["CREATE PIN"] 
if (someElement.exists){ //also it may be someElement.hittable 
//do something 
} 

Итак, вы должны проверить существующий родительский (navBar). PS. Также вам будет полезно прочитать о ожиданиях и accessibilityIdentifiers.

Смежные вопросы