检查下拉列表中的排序顺序-建议使用selenium/java的最佳方法

检查下拉列表中的排序顺序-建议使用selenium/java的最佳方法,java,selenium,automation,pageobjects,Java,Selenium,Automation,Pageobjects,我有一个下拉列表,我应该检查其中的项目是否按字母顺序排序 现在我使用两种方法来完成这项工作 我认为这样做有几个缺点: 代码看起来很长 我必须在每个页面中执行相同的步骤(我使用PabeObject模型),而不是在BasePage中使用它并在其他页面中调用它 我需要关于是否有更好的处理方法的建议 我的代码: List<WebElement> issurTypeDropdown =new LinkedList<>(driver.findElements(By.xpath("(/

我有一个下拉列表,我应该检查其中的项目是否按字母顺序排序

现在我使用两种方法来完成这项工作

我认为这样做有几个缺点:

  • 代码看起来很长
  • 我必须在每个页面中执行相同的步骤(我使用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;
        }
    
    List issurTypeDropdown=newlinkedlist(driver.findElements(By.xpath((//INPUT[@type='search'])[4]/following sibling::UL”);
    LinkedList issueTypes=新建LinkedList();
    对于(int i=0;i
    下面是我用来验证数组是否按字母顺序排序的内容<代码>订购是谷歌开发的图书馆的一部分

    public boolean isArraySortedAlphabetically(ArrayList<String> list){
        boolean isSorted = Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(list);
        return isSorted;
    }
    
    公共布尔值isArraySortedAlphabetically(ArrayList列表){
    布尔值isSorted=Ordering.from(String.CASE不区分大小写的顺序)。isOrdered(list);
    返回分类;
    }
    
    好的,所以我能够做到这一点,将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);
        }
    
    受保护的布尔校验排序(字符串xpathExpression){
    List issueTypeDropdown=新的LinkedList(driver.findElements(By.xpath(xpathExpression));
    LinkedList issueTypes=新建LinkedList();
    对于(int i=0;i
    在何处以及如何存储下拉列表值?