java - position() 函数给我带来了错误的数据

标签 java selenium selenium-webdriver

我正在使用 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]所以它首先选择所有 divt作为他们的class属性和至少一个<span> tag 里面,然后它获取第一个位置之后的 webelement 数组

关于java - position() 函数给我带来了错误的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189880/

相关文章:

python - 如何解析包含不同对象类型的 HTML 表?

java - 除了 click() 和 Submit() 方法之外,还有其他方法可以在 selenium Webdriver 中选择/单击 Web 元素吗?

java - 如果没有 "doing advanced stuff",我可以使这个搜索相关性功能更好吗?

java - 在运行时,如何指定一个类,以便函数可以创建该特定类的对象?

java - 展开给定数字的循环

html - 使用 text() 的 XPath 定位元素不起作用

python - 如何使用Python和Selenium将多个文件上传到网站?

angularjs - 无法单击带有非 Angular 站点的 Protractor 中的按钮

javascript - 为什么在编写 Protractor 测试时必须使用 browser.sleep

Java比C快?