无论如何在Selenium Webdriver或Katalon Studio中测试Web表的排序功能?

时间:2018-05-09 07:48:05

标签: selenium testing selenium-webdriver automated-tests katalon-studio

是否可以在Katalon Studio / Selenium Webdriver中测试Web表的排序功能? Katalon Studio / Selenium Webdriver是否有任何默认方法来验证单个列中的数据是按升序还是降序排列?

以下是我用来获取Web表第1列中列出的所有值并将它们保存在数组中的代码:

WebDriver driver = DriverFactory.getWebDriver()

'To locate table'

WebElement Table = driver.findElement(By.xpath('/html[1]/body[1]/table[1]/tbody[1]'))



'To locate rows of table it will Capture all the rows available in the table'

List<WebElement> rows_table = Table.findElements(By.tagName('tr'))



'To calculate no of rows In table'

int rows_count = rows_table.size()



String[] celltext = new String[rows_count]

for (int row = 0; row < rows_count; row++) {

'To locate columns(cells) of that specific row'

List<WebElement> Columns_row = rows_table.get(row).findElements(By.tagName('td'))

'It will retrieve text from 1st cell'

String celltext_1 = Columns_row.get(0).getText()

celltext[row] = celltext_1

}

例如,celltext = [4,3,2,1] 现在我想验证celltext中保存的值是否按降序排列。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

selenium和katalon都不提供排序功能。但是您可以使用java Arrays实用程序类对项进行排序并按如下方式进行比较。

String[] celltextBefore = celltext;

Arrays.sort(celltext, Collections.reverseOrder());

if(Arrays.equals(celltextBefore, celltext))
{
   System.out.println("Celltext is in descending order");
}
else{
   System.out.println("Celltext is not in descending order");
}

答案 1 :(得分:0)

特别感谢Murthi给出了比较阵列的精彩想法。

以下方式我能够解决我的问题:

    List<Integer> celltext_list = Arrays.asList(celltext);
    Collections.sort(celltext_list, Collections.reverseOrder());
    int[] celltext_new = celltext_list.toArray();

    if(Arrays.equals(celltext_new, celltext)){
        System.out.println("Celltext is in descending order")
    }
    else{
        System.out.println("Celltext is in ascending order")
    }

在上面的Murthi的解决方案中,我发现了一个错误投掷,他在评论中添加了这个错误。最后提出了上述解决方案。