Почему я получаю ошибку тайм-аута на этапе утверждения - PullRequest
1 голос
/ 04 мая 2020

Сначала я попробовал это

let url = await pa.getPageURL("Employees");
    console.log("URL "+url);

Затем я попробовал это. Оба выдают ошибку тайм-аута, но печатают правильный URL-адрес.

it('should be able to open Employees page',async () => {
    loginPg.login();
    pa.getPageURL("Employees").then(function(url){
    console.log("URL "+url);
    expect(url).toContain("employees");
})
})

async getPageURL(pageName){
    this.menu.click()
    let url = element(by.xpath('//span[contains(.,"'+pageName+'")]')).click().then(function(){
            return browser.getCurrentUrl();
        })
        return url;
}

Я пишу тест, в котором он щелкает ссылку на страницу в меню и подтверждает URL-адрес. Он работает нормально, щелкает ссылку и переходит на нужную страницу. Я также убедился, что console.log правильно печатает URL-адрес в приведенном выше коде. Но он терпит неудачу каждый раз с ошибкой тайм-аута.

  • Ошибка: тайм-аут - асинхронный c обратный вызов не был вызван в течение тайм-аута, указанного jasmine.DEFAULT_TIMEOUT_INTERVAL. в ontimeout (таймеры. js: 475: 11) в tryOnTimeout (таймеры. js: 310: 5)

Что мне здесь не хватает? Все остальные мои тесты работают нормально. Пожалуйста, помогите!

1 Ответ

1 голос
/ 05 мая 2020

Попробуйте использовать ключевое слово return перед ожидаемым.

А также не забудьте проверить DEFAULT_TIMEOUT_INTERVAL, по умолчанию это будет 5 секунд. Попробуйте изменить его на 10 секунд. Таким образом, этого времени достаточно для входа в систему и выполнения фактического ожидания.

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