2012-10-21 48 views
0

我想使用getPageSource()方法將當前頁面源保存在指定文件夾中的不同名稱下。例如將當前頁面源 保存爲C:/ Holiday文件夾下的Hawai.htm。如何將當前頁面源保存到不同的名稱和文件夾

包含Java doc的大多數參考資料僅涉及getPageSource(),但沒有具體說明在這種情況下不需要什麼。

我在Windows平臺上使用Selenium Webdriver 2 Java(JDK 7)。

回答

5

getPageSource()將返回一個包含整個頁面源的字符串。

在WebDriver中沒有可用的文件操作。爲了編寫該字符串(頁面源)將文件分離到需要的位置,您應該使用一些編程語言。

class FileWrite 
{ 
public static void main(String args[]) 
    { 
    try{ 
    // Create file 
    FileWriter fstream = new FileWriter("C://Holiday//Hawai.htm"); 
    BufferedWriter out = new BufferedWriter(fstream); 
    out.write(driver.getPageSource()); 
    //Close the output stream 
    out.close(); 
    }catch (Exception e){//Catch exception if any 
    System.err.println("Error: " + e.getMessage()); 
    } 
    } 
} 
+0

謝謝Santoshsarma,你的解決方案在第一時間工作。 –

+0

任何時候傑克布什..!接受答案並加註。 :) – Santoshsarma

0

基於文檔中,getPageSource()威力(依賴於瀏​​覽器),如果頁面已被修改的JavaScript不返回正確的內容。如果你有jQuery,你可以使用:​

try (FileWriter fstream = new FileWriter("C://Holiday//Hawai.htm"); 
    BufferedWriter out = new BufferedWriter(fstream)) { 
    String content = (String)((JavascriptExecutor)driver).executeScript("return $('html').html();")); 
    out.write(content); 
} 
catch (Exception e) {...} 
相關問題