#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');
Причина, по которой вы получаете ожидающее обещание, связана с тем, что «ожидание» означает асинхронность, оно не может получить значение до того, как оно будет решено.