2017-07-08 7 views
-1

ウェブサイトからすべてのリンクを取得し、すべてのリンクを1つずつクリックしようとしています。コードの下で実行しているとき - 私は総リンク数を正しくカウントしていますが、リンク上をナビゲートできません。それはnull pointer exceptionを投げる。ウェブサイトからすべてのリンクを取得し、すべてのリンクを1つずつクリックしようとしています

は、ここでは、コード

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

問題を特定するのに役立つエラースタックトレースを送信できますか。それを質問に追加してください。ありがとう! – demouser123

+0

はい私は答えに感謝しました。 – srinivas

答えて

0

を参照してくださいあなたの質問への答えです:

あなたはall_links.get(i).getAttribute("href");を通じて属性hrefを解析し、linksこれにそれを割り当てているので、あなたがNull Pointer Exceptionを取得していますString[]タイプです。代わりに避けることNull Pointer ExceptionすべてhrefsList<String>に保存することができます。次に、リストをトラバースして、次のように個々のリンクを開くことができます。

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); 


     } 
    } 

これはあなたの質問に答えますか?

+0

はい、これは私の問題を解決します。私の間違いを精緻にしてくれたおかげです。 – srinivas

+0

私の答えがあなたの質問に答えるならば、私の答えの横にあるチェックマークをクリックして答えを受け入れることができます。ありがとう – DebanjanB

関連する問題