我想使用getPageSource()方法將當前頁面源保存在指定文件夾中的不同名稱下。例如將當前頁面源 保存爲C:/ Holiday文件夾下的Hawai.htm。如何將當前頁面源保存到不同的名稱和文件夾
包含Java doc的大多數參考資料僅涉及getPageSource(),但沒有具體說明在這種情況下不需要什麼。
我在Windows平臺上使用Selenium Webdriver 2 Java(JDK 7)。
我想使用getPageSource()方法將當前頁面源保存在指定文件夾中的不同名稱下。例如將當前頁面源 保存爲C:/ Holiday文件夾下的Hawai.htm。如何將當前頁面源保存到不同的名稱和文件夾
包含Java doc的大多數參考資料僅涉及getPageSource(),但沒有具體說明在這種情況下不需要什麼。
我在Windows平臺上使用Selenium Webdriver 2 Java(JDK 7)。
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());
}
}
}
基於文檔中,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) {...}
謝謝Santoshsarma,你的解決方案在第一時間工作。 –
任何時候傑克布什..!接受答案並加註。 :) – Santoshsarma