如何在量角器中选择具有相同类名的第二个对象的第二个元素

时间:2016-05-30 15:53:08

标签: javascript jasmine protractor

HTML Coded snippet is here

使用量角器,在编写以下代码时,我只能从第一个匹配的类中选择第三个元素

var items = element(by.css('.swatches.swatches_size.swatches_find-box')).all(by.tagName('label'));
items.get(2).click();

从第二个匹配类中选择第二个元素的方法是什么?

代码段位于附件中

4 个答案:

答案 0 :(得分:0)

element.all(by.css('.swatches.swatches_size.swatches_find-box')).each(function (element, index) {

答案 1 :(得分:0)

您可以 element()all()

$$('.swatches.swatches_size.swatches_find-box').get(1).all(by.tagName("label")).get(1);

其中$$element.all(by.css("..."))的快捷方式。

或者,另一种方法是在nth-of-typenth-child伪类的帮助下使用单个CSS选择器:

$(".swatches.swatches_size.swatches_find-box:nth-of-type(1) label:nth-child(1)")

答案 2 :(得分:0)

感谢您的回复。以下是我选择第二个匹配DIV的第三个元素的方法:

486406789.415.py", line 6
    if hrs <= 40
               ^
SyntaxError: invalid syntax

答案 3 :(得分:0)

而不是.get(1).get(2).get(3)等,现在您可以使用更具可读性的功能,例如.second().third().fourth()等 - 我开发了一个小包 - https://github.com/Marketionist/protractor-numerator - 可以与量角器一起使用来选择第二,第三,第四等元素。

因此,应用于您的情况(从第二个匹配类中选择第二个元素),它将更具可读性并且看起来像这样:

var itemSecond = element.all(by.css('.swatches.swatches_size.swatches_find-box')).second().all(by.tagName('label')).second();
itemSecond.click();