Browser.wait не ждет за указанные миллисекунды - PullRequest
0 голосов
/ 23 января 2020

Итак, у меня проблема с browser.wait с использованием транспортира, мокко и чая. В основном, простой скрипт, который я создал, в основном:

var EC = protractor.ExpectedConditions;
describe('Personal information', function () {
    var EC = protractor.ExpectedConditions;

    this.timeout(5000);

    it('test', function (done) {

        browser.driver
            .then(() => browser.wait(EC.presenceOf(element(by.xpath("//root"), 1000, "timed out TEST")
            .then(() => done());
    });

, как вы можете видеть, я добавил функцию this.timeout(5000);, которая означает, что через 5 секунд будет выдано сообщение об ошибке, однако я вошел в browser.wait тайм-аут после 1000 миллисекунд, что означает, что через 1 секунду он должен выдать ошибку тайм-аута через 1 секунду.

Однако, похоже, что он этого не делает, а вместо этого ждет 5 секунд и выдает Error: Timeout of 5000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves., и я Я так запутался в том, что я делаю здесь неправильно. Итак, вот я!

Как я могу заставить его ждать полученную сумму?

ОБНОВЛЕНИЕ ПАРЕНИ 2:

describe('Personal information', function () {
    var EC = protractor.ExpectedConditions;

    this.timeout(0);

    browser.wait(EC.presenceOf(element(by.xpath("//root"))), 1000, "timed out TEST");
    });

1 Ответ

1 голос
/ 23 января 2020

Я не совсем уверен, как работает this.timeout(), но я подозреваю, что это ведет себя как неявное ожидание. element(by.xpath("//root")) пытается найти элемент в течение заданных 5 секунд, только после того, как это не удалось browser.wait, проверьте, был ли принят тайм-аут на 1 секунду.

Вы можете установить this.timeout(0); перед использованием browser.wait.

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