2014-02-26 41 views
0

我在非Angular頁面中有父級<div>。在父母<div>裏面有很多孩子<div> s。在那些孩子<div> s我有許多數據標籤。在HTML的結構如下:使用量角器獲取與某個文本相匹配的子元素的數量

<div class="row clearfix"> 
    <div class="col206"> 
     <p class="name">User16</p> 
     <p class="project-name">Manager</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User16</p> 
     <p class="project-name">Manager</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User15</p> 
     <p class="project-name">Developer</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User14</p> 
     <p class="project-name">Developer</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User13</p> 
     <p class="project-name">Tester</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User12</p> 
     <p class="project-name">Terster</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User11</p> 
     <p class="project-name">Developer</p> 
     <p class="telefone"></p> 
    </div> 
    <div class="col206"> 
     <p class="name">User10</p> 
     <p class="project-name">Support</p> 
     <p class="telefone"></p> 
    </div> 
</div> 

我想用量角器測試的項目並獲得其項目名稱爲測試這些元素的個數。怎麼做?

回答

2

現在沒有內置定位器來輕鬆執行您想要執行的操作。有一個定位器允許我們通過文字進行搜索,但僅限於button element

我建議pull request能夠使用css選擇器和文本搜索元素,但它尚未被接受。

同時,你可以建立自己的具體定位:

by.addLocator('projectName', function() { 
    var projectSelector = '.row div'; // probably need some refinement 
    var projectName = arguments[0]; 
    var using = arguments[1] || document; 
    var elements = using.querySelectorAll(projectSelector); 
    var matches = []; 
    for (var i = 0; i < elements.length; ++i) { 
     var element = elements[i]; 
     var elementText = element.innerText || element.textContent; 
     if (elementText === projectName) { 
      matches.push(element); 
     } 
    } 

    return matches; 
}); 

然後你可以指望這樣的:

element.all(by.projectName("Tester")).count() 
相關問題