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

Java 断言true,来自两个方法的变量,java,selenium,automation,automated-tests,Java,Selenium,Automation,Automated Tests,网站: 登录:testingTest@gmail.com 通过:测试 我正试图使买衣服的过程自动化 问题是: 我有标签要完成这个过程,我需要检查每个标签。 地址|新增产品|条款和条件|付款方式|付款|摘要| 我想从“添加的产品”选项卡中获取总价,然后从“摘要”中获取总价,并通过“断言为真”检查它们是否相同 @FindBy(id = "total_price") private WebElement totalPriceOfOrder; @FindBy(id = "total_price")

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

我正试图使买衣服的过程自动化

问题是:

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

@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元素。当然,这是不可能的,因为我在检查时处于不同的选项卡上


那么如何修复它呢?如何将price从第一个方法分配给变量,并将其断言为price从第二个方法?

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

例如,更改getLastPrice方法以返回价格字符串

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

String price = getLastPrice();
Assert.areEqual(totalPriceOfOrder.getText(), price, "Verify price");
注意:我不知道你发布的变量是什么,我只是抓取了几个并用它们作为例子

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

@FindBy(xpath = "/html/body/div/div[2]/div/div[3]/div/div/span")
private WebElement getPriceWhenOrderIsPaid;
公共字符串检查OrderInSummary选项卡的TotalValueOfOrderInSummary{ 返回order.getText的总价; }

这很奇怪,

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


driver.switchTo.frameiframeResult

出于对一切神圣事物的热爱,请不要在互联网上发布任何类型的密码。这是一个随机测试网站,用户没有任何权限,直到:org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{方法:css选择器,选择器:总价}会话信息:chrome=76.0.3809.132您的问题不是关于修复定位器,而是关于在两个页面上比较价格的方法。我已经在这个答案中展示了这个方法。如果你对定位器有问题,你可能需要做一些研究,看看你是否能自己解决。如果您自己无法解决,请发布一个新问题。我对locator没有问题,因为当我将方法更改为public void CheckTotalValueOfOrderInSummary选项卡{String totalPrice=totalPriceOfOrder.getText;System.out.printlntotalPrice;我得到的结果没有错误[Link to project Withis post modification]这不是一个答案…你的意思是编辑你的问题并添加这个吗?
@FindBy(id = "total_price")
private WebElement totalPriceOfOrder;

@FindBy(xpath = "/html/body/div/div[2]/div/div[3]/div/div/span")
private WebElement getPriceWhenOrderIsPaid;
public void getLastPrice() {
String PriceWhenOrderIsPaid = getPriceWhenOrderIsPaid.getText();
String price = checkTotalValueOfOrderInSummaryTab();
Assert.assertEquals(getPriceWhenOrderIsPaid.getText(), price, "Verify price");}