Selenium webdriver 如何使用selenium webdriver验证购物车中添加的多个产品是否相同

Selenium webdriver 如何使用selenium webdriver验证购物车中添加的多个产品是否相同,selenium-webdriver,Selenium Webdriver,我想验证购物车中添加的多个产品是否与产品页面中选择的产品相同。就像我在图中显示的那样 我正在使用 我尝试了以下方法从购物车中获取产品名称。但是元素.size()计数出错。每次都是2,即使购物车中存在5个产品 public class VerifyShoppingCart { public static void sleep(final long millis) { System.out.println((String.format("sleeping %d ms

我想验证购物车中添加的多个产品是否与产品页面中选择的产品相同。就像我在图中显示的那样 我正在使用

我尝试了以下方法从购物车中获取产品名称。但是元素.size()计数出错。每次都是2,即使购物车中存在5个产品

    public class VerifyShoppingCart {

   public static void sleep(final long millis) {
        System.out.println((String.format("sleeping %d ms", millis)));
        try {
            Thread.sleep(millis);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
    }
    public static void main(String[] args) throws IOException
    {

    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    // Enter Url
    driver.get("http://www.organicgarden.co.in");
    driver.manage().window().maximize();
    sleep(20000);
    driver.findElement(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_UpdatePanel2']/div/div/ul/li[1]/div/a[1]")).click();
    sleep(20000);
    driver.findElement(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_UpdatePanel3']/div/div/ul/li[1]/div/a[1]")).click();
    sleep(10000);
    driver.findElement(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_UpdatePanel3']/div/div/ul/li[4]/div/a[1]")).click();
    sleep(20000);
    driver.findElement(By.cssSelector(".cartP")).click();
    sleep(1000);

    List<WebElement> element = driver.findElements(By.cssSelector(".rollbar-content"));

    System.out.println("element.size : "+element.size());
    for(WebElement ele:element)
    {

        System.out.println( "............"+ele.getText());


    }

    }
    }
公共类VerifyShoppingCart{
公共静态无效睡眠(最终长毫秒){
System.out.println((String.format(“休眠%d毫秒”,毫秒));
试一试{
睡眠(毫秒);
}捕获(中断异常例外){
例如printStackTrace();
}
}
公共静态void main(字符串[]args)引发IOException
{
WebDriver=newfirefoxdriver();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
//输入Url
驱动程序。获取(“http://www.organicgarden.co.in");
driver.manage().window().maximize();
睡眠(20000);
findElement(By.xpath(“./*[@id='ctl00\u ContentPlaceHolder1\u UpdatePanel2']]/div/div/ul/li[1]/div/a[1]”)。单击();
睡眠(20000);
driver.findElement(By.xpath(“./*[@id='ctl00\u contentplaceholder 1\u UpdatePanel3']/div/div/ul/li[1]/div/a[1]”)。单击();
睡眠(10000);
driver.findelelement(By.xpath(“./*[@id='ctl00\u contentplaceholder 1\u UpdatePanel3']/div/div/ul/li[4]/div/a[1]”)。单击();
睡眠(20000);
driver.findElement(By.cssSelector(“.cartP”)。单击();
睡眠(1000);
列表元素=driver.findElements(By.cssSelector(“.rollbar content”);
System.out.println(“element.size:+element.size());
for(WebElement ele:element)
{
System.out.println(“………”+ele.getText());
}
}
}

如果您使用的是TestNG或Junit,那么您可以使用断言

有关TestNG,请参阅以下链接:-

有关JUnit,请参阅以下链接:-

如果您没有使用这些,那么您需要使用以下条件

if(string1.equalsIgnoreCase(string2))
{
    System.out.println("Equal");
}
else
{
    System.out.println("Not Equal");
}

希望它能帮助您:)

假设您的测试都已设置好,但需要验证购物车中是否存在这些项目。您可以尝试使用XPATH从购物车中搜索这些项目,例如:

.//*[text()="Potato 5 KG (Bulk)"]
或者使用selenium驱动程序获取所有购物车元素,并通过查看其内部HTML等来验证其内容

编辑:查看站点,您的选择器似乎不正确。试试这个:

driver.findElements(By.cssSelector(".simpleCart_items label"));

是的,我只得到了产品名称和项目代码。但我还需要Hi-Piittis的产品价格,你能回答吗,当我从driver.findelelements(By.cssSelector(“.simpleCart\u items label”))获得产品名称和项目代码时,如何获得产品价格;我是否需要再次定义List element2=driver.findElements(By.cssSelector(“.simpleCart_items h5”)。或者我将在已经定义的列表元素=driver.findElements(By.cssSelector(“.simpleCart_items label,h5”);请澄清我的疑问。这将是非常有帮助的,可能有很多方法来实现你想做的事情。我建议您尝试使用带有浏览器的选择器,了解如何获取所需的元素。请参见Yes,以获取我喜欢的产品的价格driver.findElements(By.cssSelector(“.simpleCart_items label,.simpleCart_items h5”);