2016-12-01 86 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!

+0

你为什么调用文件的构造和细节的BufferedWriter和关闭每个循环。把它放在循环之外。如果您使用的是java7及以上版本,请尝试使用资源,这样您就不必执行任何关闭操作。 – Grasshopper

回答

0

通过将true作为第二个参数传递给FileWriter以追加模式。

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

或者你可以在外面移动打开和关闭文件的循环是这样的:

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

它工作!非常感谢.. –

相关问题