Как проверить, видна ли ячейка в моем тесте пользовательского интерфейса? - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь утверждать в UITest, что двойное нажатие на значок home прокручивает представление моей таблицы обратно наверх.

Я предполагаю, что шаблон для этого - загрузка представления, прокрутка, утверждение, что это невозможнокажется, нажав домой и заявив, что он может сейчас.

У меня есть что-то вроде этого

   let username = "...."
    let password = "...."

    app.launch()

    let loginPage = app.otherElements["login page"]
    loginPage.waitForExistence()

    let usernameInputField = app/*@START_MENU_TOKEN@*/.webViews.textFields["Email address"]/*[[".otherElements[\"bfx_login\"].webViews",".otherElements[\"Log in to OneHub | Recognition\"].textFields[\"Email address\"]",".textFields[\"Email address\"]",".webViews"],[[[-1,3,1],[-1,0,1]],[[-1,2],[-1,1]]],[0,0]]@END_MENU_TOKEN@*/
    usernameInputField.tap()
    usernameInputField.typeText(username)

    let passwordInputField = app/*@START_MENU_TOKEN@*/.webViews.secureTextFields["Password"]/*[[".otherElements[\"bfx_login\"].webViews",".otherElements[\"Log in to OneHub | Recognition\"].secureTextFields[\"Password\"]",".secureTextFields[\"Password\"]",".webViews"],[[[-1,3,1],[-1,0,1]],[[-1,2],[-1,1]]],[0,0]]@END_MENU_TOKEN@*/
    passwordInputField.tap()
    passwordInputField.typeText(password)

    loginPage.buttons["Log In"].tap()

    let tabBarController = app.tabBars["home_tabBarController"]
    tabBarController.waitForExistence()

    let activityFeed = app.tables["Activity Feed"]
    activityFeed.waitForExistence()

    app.swipeUp()

    XCTAssertFalse(activityFeed.cells.element(boundBy: 0).isHittable)

    let homeButton = tabBarController.children(matching: .button).element(boundBy: 0)
    homeButton.waitForExistence()
    homeButton.doubleTap()

    XCTAssertTrue(activityFeed.cells.element(boundBy: 0).isHittable)

Все работает, кроме возможности утверждать против клетки.Я не верю, что

    XCTAssertFalse(activityFeed.cells.element(boundBy: 0).isHittable)

и

    XCTAssertTrue(activityFeed.cells.element(boundBy: 0).isHittable)

работают так, как я и думал.

Как я могу утверждать, что ячейка в виде таблицы видна?

1 Ответ

0 голосов
/ 21 мая 2019

Что касается проверки того, что что-то видно, то , который вы хотите использовать isHittable в сочетании с exist . Смотрите также здесь . Вот так:

element.exists && element.isHittable

Вы сказали, что isHittable не работает для вас, можете ли вы объяснить, что он не делает?

...