如何在selenium java中以相反的顺序打印web元素的锚标记及其值?

时间:2016-11-23 14:48:00

标签: java selenium selenium-webdriver selenium-chromedriver

我需要从html页面检索锚标签和锚标签值,我在java中使用selenium来检索页面的html代码。但是我需要以相反的顺序打印锚标签和锚标签值,但不能排序。

我的HTML代码如下所示: -

<div id="container">
<a href="www.flipkart.com">"Flipkart"</a>
<a href="www.amazon.com">"Amazon"</a>
<a href="www.ebay.com">"Ebay"</a>
<a href="www.newegg.com">"NewEgg"</a>
</div>

我用来检索这些锚标记的Java代码如下所示: -

 List<WebElement> list = driver.findElements(By.xpath("//div[@class='container']//a[@href]"));
            for (WebElement element : list) {
                String link = element.getAttribute("href");
                System.out.println("Link: " + link + ", Title: " + element.getText());

输出我是这样的: -

Link: www.flipkart.com , Title: Flipkart
Link: www.amazon.com , Title: Amazon
Link: www.ebay.com , Title: Ebay
Link: www.newegg.com , Title: NewEgg

但是,我需要的输出如下: -

Link: www.newegg.com , Title: NewEgg
Link: www.ebay.com , Title: Ebay
Link: www.amazon.com , Title: Amazon
Link: www.flipkart.com , Title: Flipkart

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容来反转列表:

Collections.reverse(list);

所以最终的代码看起来像这样:

List<WebElement> list = driver.findElements(By.xpath("//div[@class='container']//a[@href]"));
Collections.reverse(list);
for (WebElement element : list) {
    String link = element.getAttribute("href");
    System.out.println("Link: " + link + ", Title: " + element.getText());
}