簡體   English   中英

在 javascript 中使用 Selenium 驅動程序獲取 WebElement 文本內容

[英]Get WebElement text content with Selenium Driver in javascript

我想檢查我使用其id檢索的元素是否包含預期的文本值。

var driver = require('selenium-webdriver');
var By = driver.By;

var elem = this.driver.findElement(By.id('my_id'));
assert.equal(elem.getText(), 'blablabla');

不幸的是,這不是要走的路:

 AssertionError: ManagedPromise {
   flow_:
    ControlFlow {
      propagateUnhandledRejections_: true,
      activeQueue_:
       TaskQueue {
      == 'blablabla'

我無法找到如何進行這個簡單檢查的示例。

原因是 elem.getText() 實際上是一個Promise 這意味着,它將異步執行,並且它的結果將在稍后的時間點可用。 getText() 的返回值不是實際的文本,而是指向異步執行的指針。

要實際使用 getText() 的返回值(一旦計算完成),請使用then方法並向其傳遞一個函數。 一旦文本被計算出來,這個匿名函數就會被調用,你可以使用它(例如,斷言它等於預期值):

var elem = driver.findElement(By.id('mydiv'));
elem.getText().then(function(s) {
  assert.equal(s, "content");
});

或者,如果您更喜歡使用lambda 表達式

elem.getText().then(s => assert.equal(s, "content"));

暫無
暫無

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

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