Angularjs 如何在量角器JS上到达最后一个元素的第n个

Angularjs 如何在量角器JS上到达最后一个元素的第n个,angularjs,jasmine,protractor,Angularjs,Jasmine,Protractor,这就是我所拥有的: <input type=text class='someclass'> box1 </input> <input type=text class='someclass'> box2 </input> <input type=text class='someclass'> box3 </input> 我不能像get(1).getAttribute('value')那样使用get()函数,因为我的需求是特定

这就是我所拥有的:

<input type=text class='someclass'> box1 </input>
<input type=text class='someclass'> box2 </input>
<input type=text class='someclass'> box3 </input>
我不能像
get(1).getAttribute('value')
那样使用
get()
函数,因为我的需求是特定的,这对我不起作用

是否有人知道如何获取量角器JS中最后一个元素的第n个元素?

您可以使用,但您需要使用
解决它,然后使用
获得实际的计数值:

var n = 1;  // set nth from the last

var elements = element.all(by.className('someclass'));
var index = elements.count().then(function (count) {
    expect(elements.get(count - n).getAttribute('value')).toBe('box2'));
});
您也可以使用
XPath
的函数:

var elm = element(by.xpath('//input[@class="someclass"][last() - 1]'));
expect(elm.getAttribute('value')).toBe('box2')); 
或者,正如奥斯汀在评论中所建议的那样,类似的
CSS选择器基于:

您可以使用,但需要先使用
进行解析,然后使用
获得实际的计数值:

var n = 1;  // set nth from the last

var elements = element.all(by.className('someclass'));
var index = elements.count().then(function (count) {
    expect(elements.get(count - n).getAttribute('value')).toBe('box2'));
});
您也可以使用
XPath
的函数:

var elm = element(by.xpath('//input[@class="someclass"][last() - 1]'));
expect(elm.getAttribute('value')).toBe('box2')); 
或者,正如奥斯汀在评论中所建议的那样,类似的
CSS选择器基于:


get
应该是您所需要的全部。它可以采用负索引-n,表示从最后一个元素开始计数的第n个元素。看

i、 假设你有10个元素:['a','b',…,'i','j']

$$('abc').get(0) -> 'a'
$$('abc').get(1) -> 'b'
$$('abc').get(-1) -> 'j'
$$('abc').get(-2) -> 'i'
$$('abc').get(-10) -> 'a'

get
应该是您所需要的全部。它可以采用负索引-n,表示从最后一个元素开始计数的第n个元素。看

i、 假设你有10个元素:['a','b',…,'i','j']

$$('abc').get(0) -> 'a'
$$('abc').get(1) -> 'b'
$$('abc').get(-1) -> 'j'
$$('abc').get(-2) -> 'i'
$$('abc').get(-10) -> 'a'

您是否可以使用.css('.someclass:n个最后一个孩子(2)')
?您是否可以使用.css('.someclass:n个最后一个孩子(2)')
?负索引!太棒了,错过了。负指数!太棒了,错过了。