我正在使用 Selenium 和 Java 编写测试,下面有一个 DOM:
<body>
<div class='t'><span>1</span></div>
<div class='t'></div>
<div class='t'><span>2</span></div>
<div class='t'><span>3</span></div>
<div class='t'><span>4</span></div>
<div class='t'><span>5</span></div>
<div class='t'><span>6</span></div>
<div class='t'><span>7</span></div>
</body>
为什么两者的结果相同:
//div[position()>1 and @class='t' and .//span ]
和
//div[position()>2 and @class='t' and .//span ]
结果是:
<div class="t">
<span>2</span>
</div>
<div class="t">
<span>3</span>
</div>
<div class="t">
<span>4</span>
</div>
<div class="t">
<span>5</span>
</div>
<div class="t">
<span>6</span>
</div>
<div class="t">
<span>7</span>
</div>
我对第一个 xpath 的期望是相同的,但对于第二个 xpath 我认为应该是:
<div class="t">
<span>3</span>
</div>
<div class="t">
<span>4</span>
</div>
<div class="t">
<span>5</span>
</div>
<div class="t">
<span>6</span>
</div>
<div class="t">
<span>7</span>
</div>
最佳答案
我刚刚发现 xpath 应该是 //div[ @class='t' and .//span ][position()>2]
所以它首先选择所有 div
有t
作为他们的class
属性和至少一个<span>
tag 里面,然后它获取第一个位置之后的 webelement 数组
关于java - position() 函数给我带来了错误的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189880/