browser.driver.wait против browser.wait - PullRequest
0 голосов
/ 21 июня 2019

Я начал писать тестовые случаи для транспортира и нашел browser.wait метод, который позволяет ждать, пока какое-либо условие будет выполнено.Иногда я вижу в фрагментах кода browser.driver.wait вместо browser.wait.

В чем разница?

Я искал ответ, но нашел только разницу между sleep иwait в транспортире.

Вот моя конфигурация (я использую огуречный каркас):

        "protractor": "5.4.1",
        "protractor-cucumber-framework": "6.1.1",
        "cucumber":"5.0.2"

1 Ответ

1 голос
/ 21 июня 2019

Ответ будет зависеть от вашей версии транспортира.

Когда я писал тестовые случаи, Protractor по своей природе реализовал очередь для хранения асинхронных задач.Но эта очередь содержала только асинхронные задачи от Protractor (например: element(by.partialLinkText('Doge')).click(), etc), и каждая задача выполнялась одна за другой.Когда вы пишете browser.wait(), вы, вероятно, добавляете ожидание в очередь Protractor, но через browser.driver.wait() вы напрямую получаете доступ к драйверу селена, и задача не попадает в очередь.Это означает, что driver.wait() не будет ждать выполнения предыдущих задач в очереди, прежде чем выполнять себя.

Я не верю, что в текущей версии Protractor все еще есть очередь, и это способствует использованию async/awaitи если нет очереди, что будет преимуществом одного перед другим, но, тем не менее, когда мы используем что-либо, связанное с driver, это означает, что мы обращаемся непосредственно к API драйвера селена.

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