1

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

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

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 中的值是否按降序排列。

任何帮助将不胜感激。

4

2 回答 2

2

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");
}
于 2018-05-09T08:04:59.240 回答
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 的解决方案中,我在他的评论中添加了一个错误抛出。终于想出了上面的解决方案。

于 2018-05-10T11:14:23.923 回答