2017-07-08 1 views
-1

Ich versuche, alle Links von einer Website zu holen und einen nach dem anderen auf allen Links zu klicken. Wenn ich unter Code laufe, bekomme ich die Anzahl der Links korrekt, aber ich kann nicht auf den Links navigieren. Es wirft null pointer exception.Ich versuche, alle Links von einer Website zu holen und einen nach dem anderen auf allen Links zu klicken.

Siehe den Code

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

Können Sie den Fehler-Stack-Trace veröffentlichen, der zur Identifizierung des Problems beiträgt. Bitte fügen Sie diese Frage selbst hinzu. Vielen Dank! – demouser123

+0

ja ich habe die antwort bekommen danke. – srinivas

Antwort

0

Hier ist die Antwort auf Ihre Frage:

Sie sind ein immer Null Pointer Exception weil Sie das Attribut href durch all_links.get(i).getAttribute("href"); parsen und es links Zuordnung der ist von String[] Typ. Statt zu vermeiden Null Pointer Exception Sie speichern können alle hrefs in einem List<String>. Weiter können Sie die Liste durchqueren und die einzelnen Links wie folgt öffnen:

import java.util.ArrayList; 
    import java.util.List; 

    import org.openqa.selenium.By; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.WebElement; 
    import org.openqa.selenium.chrome.ChromeDriver; 

    public class Q44985587_links { 

     static int count =0; 
     public static void main (String args[]) throws InterruptedException 
     { 
      System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\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()); 
      List<String> links = new ArrayList<String>(); 
      for(WebElement link:all_links) 
      { 
      String link_href = link.getAttribute("href"); 
      links.add(link_href); 
      } 
      System.out.println(links); 


     } 
    } 

Lassen Sie mich wissen, ob dies Ihre Frage beantwortet.

+0

Ja, das löst mein Problem, danke für die Ausarbeitung meines Fehlers – srinivas

+0

Wenn meine Antwort auf Ihre Frage zutrifft, können Sie die Antwort akzeptieren, indem Sie auf das Häkchen neben meiner Antwort klicken, direkt unter Abstimmen nach oben/unten Pfeile, so dass das Häkchen grün wird? Vielen Dank – DebanjanB

Verwandte Themen