我在下拉菜单中应检查其中的项目是否按字母顺序排序。
现在我使用两种方法完成这项工作。
我发现这种方式有几个缺点:
我需要有关是否有更好的方法来解决这个问题的建议?
我的代码:
List<WebElement> issurTypeDropdown =new LinkedList<>(driver.findElements(By.xpath("(//INPUT[@type='search'])[4]/following-sibling::UL")));
LinkedList<String> issueTypes =new LinkedList<String>();
for(int i = 0; i< issurTypeDropdown.size(); i++)
{
// System.out.println(issurTypeDropdown.get(i).getText());
issueTypes.add(issurTypeDropdown.get(i).getText());
}
boolean result = comp_order(issueTypes);
return new add_issue_page();
}
//to compare
public static boolean comp_order(LinkedList<String> pn)
{
String prev=""; // empty string
for (final String cur: pn)
{
if (cur.compareTo(prev) < 0)
{
return false;
}
prev=cur;
}
return true;
}
答案 0 :(得分:0)
下面是我用来验证数组是否按字母顺序排序的内容。 Ordering
是Google开发的Guava库的一部分。
public boolean isArraySortedAlphabetically(ArrayList<String> list){
boolean isSorted = Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(list);
return isSorted;
}
答案 1 :(得分:0)
好吧,因此我能够通过将其作为将cna移至BasePage后可在您页面的任何位置使用的方法来实现此目的:
protected boolean CheckSorting(String xpathExpression) {
List<WebElement> issueTypeDropdown = new LinkedList<>(driver.findElements(By.xpath(xpathExpression)));
LinkedList<String> issueTypes = new LinkedList<String>();
for (int i = 0; i < issueTypeDropdown.size(); i++) {
// System.out.println(issueTypeDropdown.get(i).getText());
issueTypes.add(issueTypeDropdown.get(i).getText());
}
return Compare(issueTypes);
}