如何检查 webtable 中的 webelements 是否使用 selenium webdriver 按字母顺序排序?

新手上路,请多包涵

我们的应用程序包含网络元素表。我的目的是检查目录表是否按字母顺序排列。

 WebDriver d=new FirefoxDriver();
d.get("http://www.javatpoint.com/wrapper-class-in-java");

WebElement table=d.findElement(By.xpath(".//*[@id='city']/table/tbody"));
List<WebElement> lst=table.findElements(By.tagName("tr"));
System.out.println(lst);

List ls=new ArrayList<String>();
for(int i=0;i<=6;i++)
{
    ls=lst.addAll(get(i).getText())
}

我的目标是将字符串类型的 webelement 存储在一个列表中,并创建另一个排序类型的列表,最后比较两个列表。请帮忙。

原文由 sreenath 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 487
2 个回答

您可以将默认排序存储在字符串数组中,例如 obtainedList 然后使用 sortedList 的集合对其进行排序,最后是两者。

 ArrayList<String> obtainedList = new ArrayList<>();
List<WebElement> elementList= driver.findElements(By.xpath(YourLocator));
for(webElement we:elementList){
   obtainedList.add(we.getText);
}
ArrayList<String> sortedList = new ArrayList<>();
for(String s:obtainedList){
sortedList.add(s);
}
Collections.sort(sortedList);
Assert.assertTrue(sortedList.equals(obtainedList));

对于降序添加:

 Collections.reverse(sortedList);

Collections.sort(sortedList); 之后

原文由 Prateek 发布,翻译遵循 CC BY-SA 3.0 许可协议

Collections.sort(SortedList,String.CASE_INSENSITIVE_ORDER);

只是即兴发挥,我们需要添加 String.CASE_INSENSITIVE_ORDER 来匹配区分大小写的排序!

原文由 Sandeep 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题