有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java断言true,来自两个方法的变量

网站:http://automationpractice.com/ 登录:testingTest@gmail.com 通过:测试

我正在尝试自动化购买衣服的过程

问题是:

我有标签要完成这个过程,我需要检查每一个标签。 地址|新增产品|条款和条件|付款方式|付款|摘要| 我想从“添加的产品”选项卡中获取总价,然后从摘要中获取总价,并通过断言True检查它们是否相同

@FindBy(id = "total_price")
private WebElement totalPriceOfOrder;


@FindBy(id = "total_price")
private WebElement totalPriceOfOrder;


public void checkTotalValueOfOrderInSummaryTab(){
    String orderPrice = totalPriceOfOrder.getText();
}


@FindBy(xpath = "/html/body/div/div[2]/div/div[3]/div/div/span")
private WebElement getPriceWhenOrderIsPaid;` 

public void getLastPrice(){
    String priceIsPaid = getPriceWhenOrderIsPaid.getText();
}

当我试图断言这个方法时,我得到了一个错误,即不可能找到total_price元素。当然,这是不可能的,因为我在检查的时候是在不同的账单上

那么如何修复呢?如何将第一种方法的价格分配给变量,并将其断言为第二种方法的价格


共 (3) 个答案

  1. # 1 楼答案

    您要做的是让Get方法返回值,以便脚本可以存储该值并在以后使用

    例如,更改getLastPrice()方法以返回价格(String

    public String getLastPrice(){
        return getPriceWhenOrderIsPaid.getText();
    }
    

    然后在脚本中存储返回的值,以便以后进行断言,例如

    String price = getLastPrice();
    Assert.areEqual(totalPriceOfOrder.getText(), price, "Verify price");
    

    注意:我不知道你发布的变量是什么,我只是拿了几个作为例子

  2. # 2 楼答案

    这很奇怪

    因为。你有个错误。我认为你必须看看你的元素是否在iframe中,如果是的话。。。应用这个

    司机。切换到()。框架(“iframeResult”)

  3. # 3 楼答案

    @FindBy(id = "total_price")
    private WebElement totalPriceOfOrder;
    
    @FindBy(xpath = "/html/body/div/div[2]/div/div[3]/div/div/span")
    private WebElement getPriceWhenOrderIsPaid;
    

    public String checkTotalValueOfOrderInSummaryTab() { return totalPriceOfOrder.getText(); }

    public void getLastPrice() {
    String PriceWhenOrderIsPaid = getPriceWhenOrderIsPaid.getText();
    String price = checkTotalValueOfOrderInSummaryTab();
    Assert.assertEquals(getPriceWhenOrderIsPaid.getText(), price, "Verify price");}