我是硒的新手,我跟随网站: http://live.guru99.com/index.php/mobile.html
使用pagefactory我想在一个列表中获得所有项目的实际价格。
@FindBy (css=".price") List<WebElement> prices;
public ArrayList<String> getPrices(){
ArrayList<String> pricesList = new ArrayList<>();
for (WebElement we:prices){
pricesList.add(we.getText());
}
return pricesList;
}
上面的代码可以给我4个价格,2个正常+ 1个旧和1个叫“特价” 如何更改代码只能获得2个正常价格和1个特价?我不需要旧的价格值。
顺便说一下上面的代码是否适合使用pagefactory从网站读取类似的值?
当我得到这3个价格时,我想将所有价值与商品网站上的价格进行比较,我想我知道该怎么做,但问题在于我的Web元素列表中的4个而不是3个值
答案 0 :(得分:0)
尝试使用此css选择器
@FindBy(css=".price-box .regular-price,.special-price")
更新了更严格的解决方案
@FindBy (css=".price-box") List<WebElement> prices;
public ArrayList<String> getPrices(){
ArrayList<String> pricesList = new ArrayList<>();
for (WebElement we : prices){
// Check if there is an old-price
if (we.findElements(By.css('.old-price')).size() != 0) {
// Assuming you will take special price if there's an old-price
priceList.add(we.findElement(By.css('.special-price')).getText());
} else {
pricesList.add(we.getText());
}
}
return pricesList;
}