是否可以在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中保存的值是否按降序排列。
任何帮助都将受到高度赞赏。
答案 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的解决方案中,我发现了一个错误投掷,他在评论中添加了这个错误。最后提出了上述解决方案。