В чем разница между: 1. browser.wait (EC ...) 2. browser.wait (function () {}) 3. browser.sleep () - PullRequest
0 голосов
/ 07 ноября 2018

Объясните мне, пожалуйста, в чем разница между этими тремя вариантами кода? Все они работают хорошо.

А может, первый и второй варианты идентичны? Как насчет третьего: я читал, что «browser.sleep ()» лучше избегать в коде, так как это вызывает нестабильность в тестах. Это правда?

Помоги мне понять.

Спасибо.

var MenuSigninButton = $('button.btn');
var LoginDropdownForm = element(by.id('loginForm'));

MenuSigninButton.click();
    browser.wait(EC.visibilityOf(LoginDropdownForm));

и

MenuSigninButton.click();
    browser.wait (function () {
        return LoginDropdownForm.isDisplayed()
    });

и

MenuSigninButton.click();
browser.sleep(3000);
    expect(LoginDropdownForm.isDisplayed()).toBe(true);

1 Ответ

0 голосов
/ 07 ноября 2018

Прежде всего, да, вам следует избегать использования driver.sleep (), пока вы можете . Почему?

Хорошо, если вы начали использовать это, потому что вы ждете, чтобы что-то появилось на экране, чтобы продолжить выполнение теста. Ну, вы не знаете, сколько времени понадобится этому «чему-то».

  • Возможно, иногда время, которое вы жестко закодировали, было слишком коротким, и тест не удался, давая ложный результат.

  • Возможно, время слишком велико, и тест будет длиться слишком долго, и вы могли бы сэкономить это время.

  • Иногда две вышеупомянутые точки могут происходить в зависимости от времени, общей нагрузки env, ...

Второй вопрос:

Когда вы используете browser.wait () , вы должны передать условие, чтобы остановить ожидание. Это может быть Promise , который будет решен в будущем (не рассматривается в ваших примерах), это может быть условие (первый пример) или это может быть функция, которая должна быть выполнена (второй пример) ).

Третий пример немного отличается:

Когда вы используете метод Ожидайте , вы явно пишете условие, которое должно пройти, чтобы пройти тест. По этой причине ожидание не заканчивается, пока Обещание внутри него не будет разрешено.

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