Транспарант: element.getText() возвращает объект, а не строку
У меня есть элемент, определенный как
this.clientRowName = element(by.id('CLIENT_NAME')); //page object file
Я хочу прочитать текст в этом элементе, который является "ABC", но делает: var client = page.clientRowName.getText();
возвращает объект вместо строки. Есть ли другой способ, которым я могу получить текст для элемента
Ответы
Ответ 1
getText()
возвращает обещание, вам нужно разрешить:
page.clientRowName.getText().then(function (text) {
console.log(text);
});
Или, если вы просто хотите утвердить текст, пусть expect()
решит вам обещание:
expect(page.clientRowName.getText()).toEqual("ABC");
Promises и страница документации по документообороту должны очистить вещи.
Ответ 2
Другим решением может быть использование async/await
.
class Page {
constructor() {
this.clientRowName = $('#CLIENT_NAME');
}
}
/****************/
it('should console.log client name', async () => {
const client = await Page.clientRowName.getText();
console.log(client);
});
Ответ 3
Я обычно использовал element.getAttribute('value')