微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用 selenium 和 java 比较两个数字? 一个数字来自 CSV 文件,另一个数字来自网站

如何解决如何用 selenium 和 java 比较两个数字? 一个数字来自 CSV 文件,另一个数字来自网站

我写了一个程序来比较网站上的价格和一个带有 selenium 和 java 的 csv 文件,在程序结束时我写了 assert 来确认两个数字,但它有一个问题: 预期价格为 57,15
实际价格为 57.15

实际价格应该是 57,15,我不知道该怎么写,你能帮帮我吗?

@Test(priority = 1)
void checkBeschädigung() throws FileNotFoundException {
    preparetest();
    List<CsvPrice> stuff = readFromCSV("resources/price/BikePrice.csv");

    
    Select price = new Select(driver.findElement(By.id("coverageSum")));
    price.selectByIndex(1);
    driver.findElement(By.xpath("//*[@id=\"landingApp\"]/div[1]/div/div[2]/div/div/div/form/div[3]/div/div[2]/div[2]/div/label/input")).click();

    try {
        Thread.sleep(4000);
    } catch (InterruptedException e) {
        e.printstacktrace();
    }

    WebElement FirstPrice = driver.findElement(By.xpath("//*[@id='product-configurator-spinner']//parent::span"));
    String finalprice = FirstPrice.getText().split(" ")[0];
    System.out.println(finalprice);


    for (int i = 0; i <= 329; i++) {

        if (String.valueOf(stuff.get(i).getCoverageSum()).equals("250")
                && String.valueOf(stuff.get(i).getDurationStart()).equals("1") && stuff.get(i).getQualityName().equals("Diebstahl")
                && stuff.get(i).getDurationTimeUnit().equals("YEARS")) {
            System.out.println(stuff.get(i).getPriceBasePrice());
            Assert.assertEquals(finalprice,String.valueOf(stuff.get(i).getPriceBasePrice()));
            break;
        } else {
            System.out.println("that is wrong");
        }
    }

解决方法

请在断言行之前尝试以下代码以更改“。”到“,”在您的字符串数据中:

String actualValueWithComa = String.valueOf(stuff.get(i).getPriceBasePrice()).replaceAll(".",",");            
Assert.assertEquals(finalprice,actualValueWithComa));
,

我建议您修改 CSV 文件中的测试数据。 如果您尝试替换 '.'使用 ',' 您可能会在验证具有带小数点的更高值数据的案例时遇到问题。 可能会用逗号显示值以分隔千位等。例如:5,10,000.50

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。