我正在使用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的期望是相同的,但对于第二个我认为它应该是:
<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>
答案 0 :(得分:1)
我知道xpath应该是//div[ @class='t' and .//span ][position()>2]
,所以它首先选择div
作为t
属性的所有class
和至少一个<span>
}标签内部然后它获取第一个位置后的webelement数组
答案 1 :(得分:0)
xpath下面:
//div[position()>1 and @class='t' and .//span ]
清楚地指定div应该包含class ='t',span标记并且它的位置应该大于1.在2nd div中没有span标记。因此上面的xpath打印了第三个div的结果。
在下面的xpath中表示平均值:
//div[position()>2 and @class='t' and .//span ]
还指定div应包含class ='t',span标记及其位置应大于2.表示结果从第三个div开始。
div在第三位是
<div class='t'><span>2</span></div>
它包含class ='t'和span标记,div的位置也大于2.