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

时间:2014-04-17 12:24:32

标签: 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>

现在,在我们的Scrum流程中有一个故事,它将FIELD3放在页面的顶部,在FIELD1之上,这样新的字段顺序将是3,1,2。

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

1 个答案:

答案 0 :(得分:6)

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

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

这里的逻辑几乎说:

  

查找div下的第一个<div id="parent">,紧接着是<textarea id="field3">。如果这个断言失败,那就意味着它出了故障,第三个字段不是第一个。

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