Почему ждут путаницы с browser.element?
Я пытаюсь создать случайный адрес электронной почты для моего теста мокко. Проблема в том, что я использую открытый API, чтобы запросить 2 случайных имени.
Я считаю, что мое недоразумение связано с тем, как wdio обрабатывает функцию browser.element или что она возвращает. Я ищу разъяснения / объяснения происходящему. Это не дубликат того, как ждать выполнения обещаний, я спрашиваю, почему browser.element ведет себя по-разному, когда над ним находится ожидающий вызов.
Следующее правильно выводит элемент браузера, но у меня явно нет электронной почты.
describe('X', function() {
it('Should do stuff', async function(){
browser.url('https://www.9gag.com');
let email = randomEmail();
console.log(email)
console.log(browser.element('body .logo'))
/*outputs
[{ ELEMENT: '0.16988283114452996-261',
'element-6066-11e4-a52e-4f735466cecf': '0.16988283114452996-261',
selector: 'body #resort option',
value: [Object],
index: 0 },]
*/
});
});
Следующие выходные данные ожидают выполнения в элементе браузера.
describe('X', function() {
it('Should do stuff', async function(){
browser.url('https://www.9gag.com');
let email = await randomEmail();
console.log(email)
console.log(browser.element('body .logo'))
/*outputs
{ state: 'pending' }
*/
});
});
Вот функция randomEmail:
async function randomEmail(){
return axios.get('https://frightanic.com/goodies_content/docker-names.php')
.then(response => {
return response.data;
})
.catch(error => {
console.log(error);
});
}
Еще раз повторюсь, я не понимаю, почему предыдущий вызов функции randomEmail() заставляет селектор вести себя по-другому.
Это было запущено на webdriverio-v4 с включенной babel.