Обозначает ли browser.wait внутри метода, что метод должен быть asyn c ..? - PullRequest
0 голосов
/ 18 марта 2020

Я новичок ie для машинописи, поэтому, пожалуйста, будьте осторожны. Я делаю небольшой рефакторинг для некоторых тестов селена с использованием транспортира и angular.

Я создал метод для переноса

browser.wait(ExpectedConditions.presenceOf(element));

Все мои тесты были зелеными (когда приведенный выше код был встроенным, а не извлеченным в метод, но теперь они, похоже, не работают. Должен ли извлеченный ниже метод быть асин c, так как browser.wait возвращает обещание ..?

async waitForAsync(element) {
    browser.wait(ExpectedConditions.presenceOf(element));
}

[Edit]

Так что, если у меня есть метод getElementText ()

getElementText(element){ 
  return element.getText(); // getText returns a promise 
}

Я просто хочу иметь возможность вызывать его следующим образом

const myText = getElementText(element); 

и иметь его вернуть текст, а не обещание. Я бы сделал этот метод asyn c?

Ответы [ 3 ]

0 голосов
/ 18 марта 2020

Да. Вы должны сделать заявление, ожидая, чтобы получить значение, если вы не хотите использовать обещание.

    const myText = await getElementText(element); 

Также убедитесь, что функция, в которой он заключен, является asyn c ().

0 голосов
/ 18 марта 2020

Это должно помочь вам ура.

Файл страниц

enter image description here

Spe c файл

enter image description here

0 голосов
/ 18 марта 2020

Нет. Функция должна быть async только тогда, когда вы хотите await выражение внутри тела функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...