我可能说得非常糟糕,但我有一个<ul>
课,元素中有多个<li>
,我想打印前五个<li>
1}}条目,但不知道如何去做。我可以使用.get(1)
等打印个别条目,但我不确定如何一起使用.get(1)``.get(2)``.get(3)
或者甚至可以使用checkFigures (figures) {
browser.sleep(8000);
var checkBalance = element.all(by.css('ul.legend-numbers> li')).get(1);
checkBalance.getText().then(function (text) {
console.log(text);
//prints 2nd <li> item
});
}
。
这就是我在页面对象文件
<ul class="deposit">
<li>52,694.85</li>
<li>21,779.65</li>
<li>12,086.61</li>
<li>358,314.56</li>
<li>47,801.12</li>
<!--anchor-->
</ul>
&#13;
这是HTML
{{1}}&#13;
答案 0 :(得分:1)
您可以在ElementArrayFinder上调用.each()。使用filter()或map(),您可以获得要查找的元素。 protractor element.ts
$('ul.deposit').$$('li') //get parent ul then all child li
.filter((elements, index) => { //filter out the first 5 elements
return index < 5
})
.each((element, index) => { //for each of the 5 elements do the following. (order is not guaranteed)
return element.getText().then((text) => {
console.info(index + " - " + text)
})
});
答案 1 :(得分:0)
CSS Selector“:lt”(小于)可以与jQuery一起使用。
$("ul.deposit li:lt(5)").size(); //5
你能用吗?
$("ul.deposit li:lt(5)").each(
function(i){
console.info(i + " - " + $(this).text());
});
答案 2 :(得分:0)
var combined = '';
function combineText(a){
combined = ( combined.concat(' ') ).concat(a);
}
var checkBalance = element.all(by.css('ul.legend-numbers> li'));
for(var i = 0; i < 5; i++){
combineText(checkBalance[i].getText());
}
browser.driver.sleep(0).then(function () {
console.log(combined);
});