量角器:是否可以同时使用多个.get()?

时间:2017-06-23 18:04:08

标签: javascript node.js automation protractor aurelia

我可能说得非常糟糕,但我有一个<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 }); }。 这就是我在页面对象文件

中处理它的方法

&#13;
&#13;
<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;
&#13;
&#13;

这是HTML

&#13;
&#13;
{{1}}
&#13;
&#13;
&#13; 感谢您的帮助

3 个答案:

答案 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);
});