Ни один из методов webdriverio не работает, чтобы дождаться отображения элемента с помощью Appium & WebDriverIO (JavaScript) - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь написать тестовый пример использования в JavaScript с webdriverio (используя appium server) для собственного приложения android.

Мой тестовый пример требует, чтобы я вошел в приложение, и после регистрации (которая занимает 3-4 секунды) я должен нажать кнопку (элемент). Я перепробовал все API-интерфейсы WebDriverIO, такие как waitForDisplayed, isDisplayed (), но ни один из них не работает, чаще всего появляется сообщение об ошибке:

  TypeError: client.element(...).waitForDisplayed is not a function
      at Context.<anonymous> (test-auto-obi-copy.js:142:14)
      at processImmediate (internal/timers.js:439:21)
      at process.topLevelDomainCallback (domain.js:130:23)

Вот документация WebDriverIO для waitForDisplayed https://webdriver.io/docs/api/element/waitForClickable.html

Мой код выглядит следующим образом:

it("should press the profile button", function () {
    return client
    .element('android=new UiSelector().resourceId("com.example.dev:id/nav_graph_profile")')
    .waitForDisplayed(undefined, true)
    .click('android=new UiSelector().resourceId("com.example.dev:id/nav_graph_profile")')
    .then( function() {
        //whatever
    })
})

Тест входа успешно завершен, но после нажатия кнопки «ВХОД» я хочу, чтобы мой набор тестов «спал» до загружается следующая страница, чтобы добиться этого, я пытался дождаться, пока эта конкретная кнопка (элемент) профиля станет доступной, но кажется, что ждать ее невозможно.

Может кто-нибудь подсказать мне, что делать в этом случае, как я могу ждать?

1 Ответ

0 голосов
/ 28 января 2020

WebDriverIO изменил имена некоторых своих функций, когда одним из них был переход с v4 -> v5 .waitForDisplayed(), , как видно из журналов изменений .

  • WebdriverIO v4 -> .waitForVisible()
  • WebdriverIO v5 -> .waitForDisplayed()

Существует довольно много функций, которые слегка изменили имена, поэтому Стоит посмотреть - Кроме того, Документы для v4 все еще существуют, хотя их немного сложнее искать - Вот запись для .waitForVisible()

Кроме того, передавая undefined в качестве первого параметр, ваша задержка будет только ждать по умолчанию 500ms. Вы, вероятно, захотите что-то подобное вместо этого

.waitForDisplayed(5000, true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...