我想使用getPageSource()方法将当前页面源保存在指定文件夹中的不同名称下。例如保存当前页面源 作为C:/ Holiday文件夹下的Hawai.htm。
包括Java doc在内的大多数参考资料只涉及到getPageSource(),但没有具体说明在这种情况下不需要的内容。
我在Windows平台上使用Selenium Webdriver 2 Java(JDK 7)。
答案 0 :(得分:5)
getPageSource()将返回一个包含整个页面源的String。
在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());
}
}
}
答案 1 :(得分:0)
根据文档,如果页面已被JavaScript修改,getPageSource()
可能(取决于浏览器)不会返回正确的内容。如果你有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) {...}