我正在尝试从网站上获取所有链接,并在所有链接上逐个点击。在代码下运行时 - 我正在获得正确的链接数,但我无法在链接上导航。它抛出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);
}
}
答案 0 :(得分:0)
以下是您的问题的答案:
您收到 Null Pointer Exception
,因为您正在通过href
解析属性 all_links.get(i).getAttribute("href");
并将其分配给{{1这是 links
类型。您可以将所有 String[]
存储在 Null Pointer Exception
中,而不是 hrefs
。接下来,您可以遍历列表并打开各个链接,如下所示:
List<String>
如果这回答你的问题,请告诉我。