检查下拉列表中的排序顺序 - 使用 selenium/java 的最佳方法建议
Check sort order in drop down - advice for best approach using selenium/java
我有一个下拉菜单,我应该在其中检查其中的项目是否按字母顺序排序。
现在我使用两种方法来完成这项工作。
我发现这种方式有几个缺点:
- 代码看起来很长
- 我必须在每个页面中执行相同的步骤(我使用 PabeObject 模型),而不是仅在 BasePage 中使用它并在其他页面中调用它。
我需要关于是否有更好的方法来处理这个问题的建议?
我的代码:
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;
}
下面是我用来验证数组是否按字母顺序排序的内容。 Ordering
是由 Google 开发的 Guava 库的一部分。
public boolean isArraySortedAlphabetically(ArrayList<String> list){
boolean isSorted = Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(list);
return isSorted;
}
好的,所以我能够通过将它作为方法来做到这一点,一旦它被移动到 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);
}
我有一个下拉菜单,我应该在其中检查其中的项目是否按字母顺序排序。
现在我使用两种方法来完成这项工作。
我发现这种方式有几个缺点:
- 代码看起来很长
- 我必须在每个页面中执行相同的步骤(我使用 PabeObject 模型),而不是仅在 BasePage 中使用它并在其他页面中调用它。
我需要关于是否有更好的方法来处理这个问题的建议?
我的代码:
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;
}
下面是我用来验证数组是否按字母顺序排序的内容。 Ordering
是由 Google 开发的 Guava 库的一部分。
public boolean isArraySortedAlphabetically(ArrayList<String> list){
boolean isSorted = Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(list);
return isSorted;
}
好的,所以我能够通过将它作为方法来做到这一点,一旦它被移动到 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);
}