web-dev-qa-db-ja.com

分度器:element.getText()はStringではなくオブジェクトを返します

次のように定義された要素があります

this.clientRowName = element(by.id('CLIENT_NAME')); //page object file

「ABC」であるが実行しているこの要素のテキストを読みたい:var client = page.clientRowName.getText();

文字列ではなくオブジェクトを返します。要素のテキストを取得できる他の方法はありますか

53
Roopali Bansal

getText() はpromiseを返します。resolve それ:

page.clientRowName.getText().then(function (text) {
    console.log(text);
});

または、単にテキストをアサートしたい場合は、expect()に約束を解決させてください:

expect(page.clientRowName.getText()).toEqual("ABC");

約束と制御フロー ドキュメンテーションページで問題が解決するはずです。

105
alecxe

別の解決策は、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
robdonn

私は通常element.getAttribute('value')を使用しました

0
ji-ruh