我知道有一些与主题相似的问题答案,但我的有点不同。
我也知道我们在量角器中有像 first() 和 last() 这样的函数,但我想知道是否有可能在常规 Webdriver 中实现某些功能,例如:
//div[@attr='header']/div/div[2]
在哪里可以用 [2] 表示第二个兄弟姐妹?我已经尝试过但没有奏效,但也许这里看起来有点不同?
有几种不同的方法可以实现此目的。按照使用.last()
和.first()
相同的思路,您也可以使用.get(<index>)
。索引从 0 开始。所以element.all(by.xpath('//div[@attr='header']/div/div').get(2)
适用于这种情况。
您还可以使用 css 选择器:nth-child()
查找兄弟姐妹。nth-child
的索引从 1 开始。
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
在上面的 html 代码段中,如果我想选择第三个跨度,我会使用 'div > span:nth-child(3)'