我想在循环中打印元素列表

时间:2017-08-21 06:08:16

标签: java selenium selenium-webdriver

我有一些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());


}

2 个答案:

答案 0 :(得分:1)

eWebElement列表中的Pid。您无法使用它来拨打其他列表。您也无法在列表中使用getText()

您无法使用一个循环打印5个不同的列表,但是您可以创建一个接收List<WebElement>作为参数并打印它的方法

public void printList(List<WebElement> list) {
    for(WebElement item : list) {
        System.out.println(item .getText());
    }
}

用途:

printList(Pid);
printList(Ptitle);
//...

作为旁注,变量应以小写字母pidptitle等开头。

答案 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());

        }