我可以使用Selenium Webdriver测试元素的顺序吗?

use*_*141 1 java selenium webdriver

有一个表格,其中有3个字段,有3个不同的ID:

<fieldset>
<div><label for="field1">
 FIELD1
 </label>
 <textarea id="field1" name="field1" rows="10" cols="40"></textarea></div>


 <div><label for="field2">
  FIELD2
</label><textarea id="field2" name="field2" rows="10" cols="40"></textarea></div>


<div><label for="field3">
  FIELD3
</label><textarea id="field3" name="field3" rows="10" cols="40"></textarea></div>

</fieldset>
Run Code Online (Sandbox Code Playgroud)

现在,在我们的Scrum过程中有一个故事,它将FIELD3置于页面顶部,在FIELD1之上,因此新的字段顺序将为3,1,2.

我的问题是:有没有办法验证/断言订单?如果是,我如何使用Selenium Webdriver(java)自动测试?

dda*_*son 6

你确定可以.这是一些伪代码.

assertTrue(
    driver.findElement(
        By.cssSelector("div#parent > div:nth-child(1) > textarea#field3")
    ).isDisplayed()
);
Run Code Online (Sandbox Code Playgroud)

这里的逻辑几乎说:

寻找下面的第一个div,<div id="parent">紧接着是<textarea id="field3">.如果这个断言失败,那就意味着它不按顺序,第三个字段不是第一个.

(请注意,div#parent显然可能会发生变化.您需要将其更改为这些div的父级,您可能还需要:nth-child(n)根据顺序进行操作)