我正在尝试从网站上获取所有链接,并在所有链接上逐个点击

时间:2017-07-08 11:15:19

标签: selenium selenium-webdriver

我正在尝试从网站上获取所有链接,并在所有链接上逐个点击。在代码下运行时 - 我正在获得正确的链接数,但我无法在链接上导航。它抛出null pointer exception

参考代码

public class Fetch_all_links {

static int count =0;
public static String[] links = null;

public static void main (String args[]) throws InterruptedException{

    System.setProperty("webdriver.chrome.driver", "D:\\New folder\\exe\\chromedriver_win32\\chromedriver.exe");

    WebDriver driver = new ChromeDriver();
    driver.get("http://www.msn.com");
    driver.manage().window().maximize();

    List<WebElement>all_links = driver.findElements(By.tagName("a"));

    System.out.println(all_links.size());
    for(int i=0;i<all_links.size();i++){


        links[i] = all_links.get(i).getAttribute("href");
        driver.navigate().to(links[i]);
        System.out.println(count + driver.getTitle());
        count++;
        Thread.sleep(1000);

    }


}

1 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

您收到 Null Pointer Exception ,因为您正在通过href解析属性 all_links.get(i).getAttribute("href"); 并将其分配给{{1这是 links 类型。您可以将所有 String[] 存储在 Null Pointer Exception 中,而不是 hrefs 。接下来,您可以遍历列表并打开各个链接,如下所示:

List<String>

如果这回答你的问题,请告诉我。

相关问题