我有一些web元素列表,我想在一个循环中打印所有元素。我怎么能这样做?。我不知道该怎么办..我把我的代码放在哪里工作..任何将不胜感激
List<WebElement> Pid=wd.findElements(By.xpath(".//*[@class='optimizely-propertyid recommend-row-target']"));
List<WebElement> Ptitle=wd.findElements(By.xpath(".//*[@class='see-the-world-des listing-thumb-title property-wide-block-title']/a"));
List<WebElement> Pprice=wd.findElements(By.xpath(".//*[@class='see-the-world-price-image list-view']/a/span"));
List<WebElement> psleeps=wd.findElements(By.xpath(".//*[@class='see-the-world-price with-rating']/span/a"));
List<WebElement> Prating=wd.findElements(By.xpath(".//*[@class='rating-text']"));
for(WebElement e:Pid){
System.out.println(e.getText());
System.out.println(e.Ptitle.getText());
System.out.println(Pprice.getText());
}
答案 0 :(得分:1)
e
是WebElement
列表中的Pid
。您无法使用它来拨打其他列表。您也无法在列表中使用getText()
。
您无法使用一个循环打印5个不同的列表,但是您可以创建一个接收List<WebElement>
作为参数并打印它的方法
public void printList(List<WebElement> list) {
for(WebElement item : list) {
System.out.println(item .getText());
}
}
用途:
printList(Pid);
printList(Ptitle);
//...
作为旁注,变量应以小写字母pid
,ptitle
等开头。
答案 1 :(得分:0)
我假设所有列表都有相同数量的元素。然后你可以打印如下。
List<WebElement> Pid=wd.findElements(By.xpath(".//*[@class='optimizely-propertyid recommend-row-target']"));
List<WebElement> Ptitle=wd.findElements(By.xpath(".//*[@class='see-the-world-des listing-thumb-title property-wide-block-title']/a"));
List<WebElement> Pprice=wd.findElements(By.xpath(".//*[@class='see-the-world-price-image list-view']/a/span"));
List<WebElement> psleeps=wd.findElements(By.xpath(".//*[@class='see-the-world-price with-rating']/span/a"));
List<WebElement> Prating=wd.findElements(By.xpath(".//*[@class='rating-text']"));
for(int i=0;i<Pid.size();i++){
System.out.println(Pid.get(i).getText());
System.out.println(Ptitle.get(i).getText());
System.out.println(Pprice.get(i).getText());
System.out.println(psleeps.get(i).getText());
System.out.println(Prating.get(i).getText());
}