2016-12-01 11 views
0
WebDriver driver = new ChromeDriver(); 

     driver.get("http://edition.cnn.com/"); 
     Thread.sleep(4000); 

       driver.findElement(By.id("search-button")).click(); 
       driver.findElement(By.id("search-input-field")).sendKeys("Sport"); 
       driver.findElement(By.id("submit-button")).click(); 

       List<WebElement> allLinks = driver.findElements(By.className("cd__headline")); 

       for ( int i=0 ; i<allLinks.size();i++) 
       { 
        try { 


         File file = new File("file path"); 


         FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
         BufferedWriter bw = new BufferedWriter(fw); 
         bw.write(((WebElement) allLinks.get(i)).getText()); 
          System.out.println(((WebElement) allLinks.get(i)).getText()); 
         bw.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 


       } 

       System.out.println(driver.getTitle()); 
       driver.manage().window().maximize(); 
      } // driver.close(); 


       //driver.quit(); 
    } 

こんにちはプログラマー。 ウェブページからデータを抽出してtxtファイルに保存するプログラムを作成する問題がありますセレニウム..データを抽出してtxtファイルに保存します

問題は私が10のうち1つのヘッドラインを得る!!

+0

なぜあなたはファイルのコンストラクタとBufferedWriterの詳細を呼び出し、各ループでクローズされています。それをループの外に出す。 java7以上を使用している場合は、リソースを使用して試してみてください。そうすれば、終了する必要はありません。 – Grasshopper

答えて

0

FileWriterを、第2引数としてtrueを渡してモードを追加するようにします。

FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); 

かは、開口部を移動し、このようなforループの外にファイルを閉じることができます。

public static void main(String[]args) { 
    WebDriver driver = new ChromeDriver(); 
    driver.get("http://edition.cnn.com/"); 
    Thread.sleep(4000); 
    driver.findElement(By.id("search-button")).click(); 
    driver.findElement(By.id("search-input-field")).sendKeys("Sport"); 
    driver.findElement(By.id("submit-button")).click(); 

    List<WebElement> allLinks = driver.findElements(By.className("cd__headline")); 

    try { 
     File file = new File("file"); 
     FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
     BufferedWriter bw = new BufferedWriter(fw); 
     for ( int i=0 ; i<allLinks.size();i++) 
     { 
       bw.write(((WebElement) allLinks.get(i)).getText()); 
       System.out.println(((WebElement) allLinks.get(i)).getText()); 
      } 
      bw.close(); 
     } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println(driver.getTitle()); 
    driver.manage().window().maximize(); 
} // driver.close(); 
+0

それは動作します!非常に感謝して.. –

関連する問題