簡體   English   中英

量角器:element.getText() 返回一個對象而不是 String

[英]Protractor: element.getText() returns an object and not String

我有一個元素定義為

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

我想閱讀這個元素中的文本,它是“ABC”,但正在做: var client = page.clientRowName.getText();

返回一個對象而不是一個字符串。 有沒有其他方法可以獲取元素的文本

getText()返回一個 promise ,您需要解決它:

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

或者,如果您只想斷言文本,請讓expect()為您解決承諾:

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

Promises 和 Control Flow文檔頁面應該可以解決問題。

另一種解決方案可能是使用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);
});

如果你在 2021 年,你會想要閱讀這個答案

根據量角器文檔, .getText()返回一個承諾。

截至 2021 年,處理承諾的最佳方法是使用 async/await 關鍵字。 這將使量角器“凍結”並等待,直到在運行下一個命令之前解決承諾

it('test case 1', async () => {
  let text = await page.clientRowName.getText();
  console.log(text);
})

.then()也可以使用,但使用async/await將使您的代碼更具可讀性和更易於調試。

我通常使用element.getAttribute('value')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM