2017-02-22 65 views
0

當我添加一個具有某個值的新按鈕時,它會動態添加到DOM中。此按鈕無棱角HTML元素是:量角器中的動態屬性值元素定位器

<li class="ui-state-default droppable ui-sortable-handle" id="element_98" data-value="2519"> 
    25.19 EUR 
<button type="button" class="btn btn-default removeParent"> 
<span class="glyphicon glyphicon-remove" aria-hidden="true"> 
</span> 
</button> 
</li> 

一旦我刪除此按鈕,我要檢查它不再存在。元素我在尋找爲data-value="2519",這可能是任何東西我設置,例如像2000,1000,500,1050,...

在頁面目標文件我曾嘗試使用以下命令:

this.newValueButtonIsNotPresent = function(item) { 
     newValueButton = browser.element(by.id("containerQUICK_ADD_POINTS")).all(by.css('[data-value="' + item + '"]')); 
     return newValueButton.not.isPresent(); 
    }; 

而且在規範文件中我調用這個函數如下:

var twentyEurosButtonAttributeValue = '2000'; 

describe(".... 
    it ("... 
     expect(predefined.newValueButtonIsNotPresent(twentyEurosButtonAttributeValue)).toBeTruthy(); 

我知道這是不正確的,但我怎麼能實現類似的東西或者有另一種方式?

回答

1

愚蠢的我,我找到了一個簡單的解決方案。相反,動態定位的元素我所在的第一個列表中,這始終是一個,這是新增加的,然後檢查,如果是文本不匹配:

頁對象文件:

this.newValueButtonIsNotPresent = function() { 
     newValueButton = browser.element(by.id("containerQUICK_ADD_POINTS")).all(by.tagName('li')).first(); 
     return newValueButton.getText(); 
    }; 

規格文件:

// verify element 20.00 EUR is not present 
predefined.newValueButtonIsNotPresent().then(function(value) { 
    expect(value).not.toEqual(twentyEurosText); 
}); 
相關問題