我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?
Posted
技术标签:
【中文标题】我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?【英文标题】:I have added product to the trolley by using selenium web driver JAVA and I removed it from the cart. How can I assert the product is removed or not?我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是否被移除? 【发布时间】:2021-12-21 18:35:00 【问题描述】:这是我从手推车或购物车中取出产品。
public class TrolleyPage()
public void removeFromTrolley()
List<WebElement> removeProductBtnList = driver.findElements(By.cssSelector("button[data-test='basket-removeproduct']"));
int size = removeProductBtnList.size();
System.out.println("Number of size of Added product in trolley " + size);
WebElement removedWebElement = removeProductBtnList.get(0);
removedWebElement.click();
它正在工作。 我已将“产品名称”存储在手推车的列表中,以验证手推车中的产品在移除后是否可用,但出现断言错误。
public class TrolleyPage()
public List<String> getAllProductsInTrolley()
List<String> actualList = new ArrayList<>();
List<WebElement> productWebElements = driver.findElements(By.cssSelector("a[data-e2e='product-name']"));
for (WebElement product : productWebElements)
String productName = product.getText();
if (!productName.isEmpty())
actualList.add(productName);
System.out.println("Product :" + productName);
return actualList;
这是我的实际列表,我想与预期的比较我如何断言请帮助我
public class RemoveTheProductDefs
private TrolleyPage trolleyPage = new TrolleyPage();
private String expected;
@When("^I remove a product$")
public void i_remove_a_product()
trolleyPage.removeFromTrolley();
--------- This is failing-------
@Then("^I should see the the trolley is empty$")
public void i_should_see_the_the_trolley_is_empty()
List<String> actualList = trolleyPage.getAllProductsInTrolley();
assertThat(actualList,contains(expected));
【问题讨论】:
【参考方案1】:快速而简单的修复可能是比较 List 的大小。
sizeAfter = sizeBefore - 1
private int sizeBefore;
@Given("^I added products to trolley$")
public void i_added_products_to_trolley()
...
sizeBefore = trolleyPage.getAllProductsInTrolley().size();
...
@Then("^I should see the number of product in trolley decrease one$")
public void i_should_see_the_number_of_product_in_trolley_decrease_one()
int sizeAfter = trolleyPage.getAllProductsInTrolley().size();
assertThat(sizeAfter , equalTo(sizeBefore - 1));
【讨论】:
以上是关于我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?的主要内容,如果未能解决你的问题,请参考以下文章
python自动化中使用selenium处理鼠标事件的方法详解
带有Python的Selenium Webdriver - 无法使用Selenium Web驱动程序在Web应用程序中提供输入(Date)