扫描网站中的所有链接(URL)并在selenium get()方法中使用它们

时间:2013-10-29 05:25:34

标签: url selenium selenium-webdriver

我需要获取网站中的所有网址,以便我可以使用它来使用Selenium get()方法打开网页。打开页面后,我打算从网页上获取少量数据,然后转到下一个链接。

你能帮我解决这个问题的最佳方法吗?并提供相同的示例代码。

1 个答案:

答案 0 :(得分:0)

可能有其他方法可以做到这一点,但这是我想到的第一种方式。

    // Create your driver of choice
    WebDriver fDriver;
    fDriver = new FirefoxDriver();

    // Direct the driver to the site that you want to get all the links from
    fDriver.get("Site URL here...");

    // Grab all the anchor tags on the page you're currently on.
    List<WebElement> anchors = fDriver.findElements(By.tagName("a"));

    // Create a 2nd List to hold the URLs of the anchor tags.
    List<String> allURLs = new ArrayList<String>();

    // Iterate through all the anchors that you got.
    for (WebElement a : anchors) {

        // Print out the URL of the anchor.
        System.out.println(a.getAttribute("href"));

        // Store the URL of the List.
        allURLs.add(a.getAttribute("href"));
    }

    // Now just get the URL you want to use from the list...
    String siteURL = allURLs.get(0);
    // and enter it into the get() method of the driver.
    fDriver.get(siteURL);

使用get方法使用所有URL的第二部分由你来决定,但我想我已经给你一个良好的开端。希望它有所帮助!