我有以下HTML:
<ul class="chosen-results">
<li class="active-result result-selected highlighted" data-option-array-index="0" style="">All Jobs</li>
<li class="active-result" data-option-array-index="1" style="">My Jobs</li>
<li class="active-result" data-option-array-index="2" style="">Passed Jobs</li>
<li class="active-result" data-option-array-index="3" style="">Failed Jobs</li>
</ul>
我使用以下代码返回每个列表元素,但是当测试运行时,它不会检测到任何这些元素。
static get allJobs(){
return element(By.className('data-option-array-index="0"'));
}
static get myJobs(){
return element(By.className('data-option-array-index="1"'));
}
static get passedJobs(){
return element(By.className('data-option-array-index="2"'));
}
static get failedJobs(){
return element(By.className('data-option-array-index="3"'));
}
有人能判断我是否正确归还了这些元素。
答案 0 :(得分:3)
那些不是课程。您需要使用
By.css('[data-option-array-index="0"]')
By.css('[data-option-array-index="1"]')
By.css('[data-option-array-index="2"]')
By.css('[data-option-array-index="3"]')
答案 1 :(得分:0)
是的,因为Dan Crews说它不是类名,它是元素中的属性。除此之外,如果你想要比给出数组索引更具体。 以下将是一个很好的解决方案
By.cssContainingText('All Jobs')
By.cssContainingText('My Jobs')
By.cssContainingText('Passed Jobs')
By.cssContainingText('Failed Jobs')
以上定位器/选择器也是特定量角器。即使存在具有相同类/属性的隐藏元素,也要完全找到元素。
因为它找到了用户启用且可见的唯一名称。
为了找到当前选择的元素,您可以使用如下所示的类名。
return $('.active-result.result-selected.highlighted')
如果它确实满足您的问题,请投票或选择正确的答案。如果您需要更多详细信息,请发表评论。