簡體   English   中英

如何在 selenium + java 中驗證排序?

[英]How to verify sorting in selenium + java?

在此處輸入圖像描述

我需要測試按價格排序的項目:

        List<WebElement> elements2 = driver.findElements(By.className("price"));
    for (WebElement element : elements2) {
        System.out.println(element.getText());
    }

在這里我收集了列表中的所有值,現在我需要刪除“грн”並將值轉換為 int,然后以某種方式驗證它們是否按應有的方式排序,但我不知道該怎么做:(

我將非常感謝您的幫助!

    List<Integer> price = (List<Integer>) elements2.stream().map(c -> {
        WebElement a = (WebElement) c;
                       //you can add getText() also
        String value = a.getAttribute("textContent");

        int pricelocal = Integer.parseInt(value.replaceAll("[^0-9]", ""));

        return pricelocal;

    }).collect(Collectors.toList());

    System.out.println(price);

上面的代碼行將創建一個僅包含價格的列表

現在將它復制一個臨時數組,對臨時數組進行排序並驗證排序的臨時數組和初始數組是否相等:

    List<Integer> priceTemp = new ArrayList<Integer>(price);
    Collections.sort(priceTemp, Collections.reverseOrder()); 
            
    System.out.println(priceTemp.equals(price));

您可以使用以下代碼通過將其轉換為 integer 來驗證價格是否已排序。 sorted() - 升序 sorted(Comparator.reverseOrder()) - 降序

List<Integer> priceValues = elements2.stream()
                .map(a->Integer.parseInt(a.getText().replaceAll("[^0-9 ]+", "")))
                .collect(Collectors.toList());

        boolean isSorted = priceValues.equals(priceValues.stream().sorted().collect(Collectors.toList()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM