WebDriver findElements在检索时保留表行顺序

时间:2015-07-05 12:11:45

标签: java selenium selenium-webdriver

检索 html表WebElement列表时,例如以下内容(例如,通过标记):

webDriver.findElement(By.id("mainTable"))
         .findElements(By.tag("tr"))

退货清单是否有保证订单?我可以安全地假设element [i]在表行顺序中位于元素[i + 1]之前吗?

我看了official docs,然后用Google搜索,但没有运气。

2 个答案:

答案 0 :(得分:1)

是的,返回列表有保证的顺序,您可以放心地假设元素[i]在表行顺序中位于元素[i + 1]之前。

您可以使用不同的参数引用RemoteWebDriverBy类中的findElements()方法的实现。你需要的是findElements方法的下面代码,它接受两个字符串作为参数。

var user = "{{user}}";

请注意,该方法使用ImmutableMap返回找到的网络元素并将其添加到列表中。

  

基于散列的不可变Map,具有可靠的用户指定迭代   顺序。

因为,ImmutableMap保留了迭代顺序,所以你可以放心地假设通过findElements方法返回WebElement列表。

答案 1 :(得分:0)

我认为我没有在任何地方看到它,但根据我的经验: - findElement返回与定位器定义匹配的第一个元素(first =在DOM中) - findElements返回与定位器定义匹配的所有元素(按DOM排序)