Не удается получить заголовок URL при слишком быстрой загрузке - PullRequest
1 голос
/ 14 января 2020

Я довольно новичок с мокко, и мне, похоже, это нравится. Однако у меня возникает небольшая проблема, когда кажется, что он пытается найти заголовок страницы слишком быстро, и, если мне повезет, ему действительно удается найти заголовок, но иногда это не так, и я ищу способ что-то вроде «подождать до элемента» если не после 10 se c то выдает ошибку "

browser.get(url);


it('should have a title', (done) => {
    browser.driver
        .then(() => browser.getPageTitle())
        .then((text) => {
            assert.equal(text, "TEST", 'Not able to find the title');
        })
        .then(() => done());
});

Прямо сейчас, если мне повезет, мне удается его поймать, но в основном он выдает ошибку, которая является пустым откликом, который я считаю является то, что он не получает название из-за слишком быстрого. Как я могу сделать что-то вроде «Ждать, пока не появится заголовок, а если его нет после 10 se c, то ошибка»

Ответы [ 3 ]

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

Похоже, вам нужно browser.wait с ожидаемым условием . Попробуйте это

browser.wait(protractor.ExpectedConditions.urlContains('required_url'),
    10*1000,
    "Url did not contain 'required_url' within 10 seconds"
);
1 голос
/ 14 января 2020

Импорт chai и chai-as-обещано

const chai = require('chai').use(require('chai-as-promised'));
const expect = chai.expect;

Попробуйте использовать ожидание сейчас

it('Check page title', () => { expect(browser.getTitle()).toEqual('Protractor practice website - WebTables'); })

Теперь ожидайте, что это библиотека утверждений chai, а не жасмин по умолчанию.

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

Попробуйте это:

setTimeout(() => {
    browser.get(url);


    it('should have a title', (done) => {
        browser.driver
            .then(() => browser.getPageTitle())
            .then((text) => {
                assert.equal(text, "TEST", 'Not able to find the title');
            })
            .then(() => done());
    });

}, 1000);
...