Можно ли как-то проверить функциональность сортировки веб-таблицы в Selenium Webdriver или Katalon Studio?

Можно ли протестировать функциональность сортировки веб-таблицы в Katalon Studio/Selenium Webdriver? Есть ли у Katalon Studio/Selenium Webdriver какой-либо метод по умолчанию для проверки того, находятся ли данные в одном столбце в порядке возрастания или убывания?

Ниже приведен код, который я использовал для получения всех значений, перечисленных в 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] Теперь я хочу убедиться, что значения, сохраненные в тексте ячейки, расположены в порядке убывания.

Любая помощь будет высоко оценена.


person Noor Yeaser Khan    schedule 09.05.2018    source источник
comment
Нет, для этого нет готового метода сопряжения, вы должны написать его явно. Это было бы легко, я думаю!   -  person cruisepandey    schedule 09.05.2018


Ответы (2)


Ни селен, ни каталон не обеспечивают сортировки. Но вы можете использовать служебный класс 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");
}
person Murthi    schedule 09.05.2018
comment
Большое спасибо за быстрый отзыв @murthi. Я использовал приведенный выше код и, к сожалению, получил следующую ошибку: java.lang.ClassCastException: java.util.Collections$ReverseComparator не может быть приведен к java.lang.Comparable - person Noor Yeaser Khan; 09.05.2018

Отдельное спасибо Мурти за прекрасную идею сравнения массивов.

Следующим образом я смог решить свою проблему:

    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")
    }

В приведенном выше решении Мурти возникла ошибка, которую я добавил к его комментарию. Наконец, придумал вышеуказанное решение.

person Noor Yeaser Khan    schedule 10.05.2018