簡體   English   中英

量角器 - 計算xpath中的元素並將其存儲到var

[英]Protractor - count elements in xpath and store it to var

我需要將表中記錄數的值存儲在某個變量中,以便最近使用它。 現在嘗試簡單打印這樣的記錄數:

    var rows = element.all(by.xpath('//*[@id="content"]/div/div/table/tbody/tr'));
    var sum = rows.count();
    console.log(sum.getText());

或者像那樣:

element.all(by.xpath('//*[@id="content"]/div/div/table/tbody/tr')).count().then(function(count) { console.log(count); });

但每次我Failed: object is not a function 任何人都可以幫忙嗎?

從這個線程嘗試的解決方案: 量角器 - 計數轉發器中的元素並打印它 - 但沒有工作。

我想做與Java代碼類似的場景:

@Test
public void test() throws Exception {
    When:
    clickOn(welcomePage.usersButton);
    clickOn(usersPage.archivedTab);
    int numberOfRecords = getDriver().findElements(By.xpath("//*[@id=\"content\"]/div/div/table/tbody/tr")).size();
if (numberOfRecords > 0) {  do test, test steps ar here  } else {break test}

首先,你的sum變量不是一個對它執行getText()的量角器element對象。 你必須得到count()函數返回的承諾,將它存儲在sum變量中。 這是如何做 -

var rows = element.all(by.xpath('//*[@id="content"]/div/div/table/tbody/tr'));
rows.count().then(function(count){
    var sum = count;
    console.log(sum);
});

如果你想斷言你的count()元素的值,那么expect它使用jasmine大於0。 這是如何做 -

expect(element.all(by.xpath('//*[@id="content"]/div/div/table/tbody/tr')).count()).toBeGreaterThan(0);

element.all()等待隱式等待時間以獲取DOM中存在的元素。 一旦隱式等待超時,它就會返回它找到的元素。 如果找不到任何帶定位符的元素,則返回零。

希望能幫助到你。

暫無
暫無

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

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