Ошибка сравнения селена между 2 значениями

#java #selenium #testing

#java #селен #тестирование

Вопрос:

Это код:

     List<WebElement> ProductPrices1 = driver.findElements(By.className("prc-slg"));
    String text1Price = ProductPrices1.get(0).getText();
    
    thread(1500);
    element(ClickBucket).click();
    thread(1500);

    
    List<WebElement> elements = driver.findElements(By.xpath("//div[contains(@class, 'pb-basket-item-price')]"));
    for (WebElement element : elements) {
        str = element.getText();

        int cntTL = (str.length() - str.replace("TL", "").length()) / 2;
        if (2 == cntTL) {
            str = str.split("TL")[1].replace(""", "")   " TL";
        }
      
    }
    
    System.out.println("first value : " text1Price "Bucket Value : " str);
     Assert.assertEquals(text1Price,str);
  

Это результат:

первое значение: 1.189 TL Значение корзины:
1.189 TL
базовая ошибка
: signInTestCase
org.junit.Ошибка сравнения: ожидаемый: <[1.189] TL> но было:<[
1.189 ] TL>

Комментарии:

1. Во втором значении (str) после 1.189 есть пробел, удалите его. Дайте значение str, чтобы я мог проверить.

2. первое значение: 1.699 TLBucket Значение: 1.278 TL Сбой базового кода: signInTestCase org.junit. Ошибка сравнения: ожидалось: <[1.699] TL> но было: <[ 1.278] TL>

3. кстати, basarisiz по-турецки означает «потерпел неудачу»

4. Я имею в виду значение, записанное здесь: str = element.getText();

Ответ №1:

Есть несколько способов решить проблему. Одним из них является:

 Assert.assertEquals(text1Price.replace("TL", "").trim(), str.replace("TL", "").trim());
  

Комментарии:

1. Кстати, эта ошибка возникает только тогда, когда товар имеет скидку.

2. @BatuhanBakar Я думаю, это сработает независимо от того, есть скидка на товар или нет.