Ошибка WebdriverIO, Мокко, Чиа при использовании browers.getTitle и assert.strictEqual

#javascript #selenium #testing #mocha.js #chai

Вопрос:

Я пытаюсь запустить тест с использованием Мокко, чая и WebdriverIO, который утверждает, что название веб-сайта www.travellifemedia.com равно тому, каким должен быть заголовок с использованием browser.getTitle и strictEqual. Получаю ошибку, как видно на скриншоте, и не уверен, что я что-то напутал.

 const assert = require('assert');
var chai = require('chai');




describe('Travel Life Media Homepage Test', () => {
    it('should have the right title', () => {
        const url = browser.url('https://www.travellifemedia.com/');
        const title = browser.getTitle();
        assert.strictEqual(title, 'Travel Life Media: Tourism Marketing');
    })
    it('should save a screenshot of the browser view', function () {
        browser.saveScreenshot('./screenshots/screenshot.png');
    });
    it('should detect if an element is clickable', () => {
        const el = $('.ab_b')
        let clickable = el.isClickable();
        console.log(clickable); // outputs: true or false

        // wait for element to be clickable
        browser.waitUntil(() => el.isClickable())
    });
})```

[Image of Error in VSCode][1]


  [1]: https://i.stack.imgur.com/eW2vN.png
 

Ответ №1:

Используйте ключевое слово await

 const url = await browser.url("<url>")
const browserTitle = await browser.getTitle()
assert.strictEqual(title, 'Travel Life Media: Tourism Marketing');
 

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