Почему ждут путаницы с 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.

0 ответов

Другие вопросы по тегам