如何在WebDriver中的ArrayList中对WebElements进行排序?

时间:2015-05-12 10:26:46

标签: java sorting

请帮助如何排序下面的代码以找到最大值,最小值和平均值? 实际上我想导航到视图最多的问题,并使用Selenium拍摄问题页面的屏幕截图 我使用https://stackoverflow.com/主页作为我的示例页面

List<WebElement> views = driver.findElements(By.xpath("//*[@class='mini-counts']/span"));
System.out.println("Size is = " + views.size());

String maxvalue = "maxvalue after sorting";
for(int i=2;i< views.size();i+=3){
    if(views.get(i).getText().equals(maxvalue)){
        views.get(i).click();
        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(scrFile, new File(System.getProperty("user.dir")+"\\Screenshots\\"+"most_views.png"));
    }

1 个答案:

答案 0 :(得分:1)

您可以使用comparator,创建比较类,如

public class ViewComparator implements Comparator {

    @Override
    public int compare(WebElement w1, WebElement w2) {
       // extract view count from WebElement and compare it
    }
}

然后像

一样使用它
Collections.sort(views, new ViewCountComparator());

这将根据视图计数对列表进行排序,然后您可以使用第一个/最后一个WebElement来获取最小值/最大值。