我想使用 getPageSource() 方法将当前页面源以不同的名称保存在指定文件夹中。例如,将当前页面源保存为 C:/Holiday 文件夹下的 Hawai.htm。
大多数参考资料(包括可用的 Java 文档)仅涉及 getPageSource() ,但没有什么特别不是在这种情况下需要的内容。
我在 Windows 平台上使用 Selenium Webdriver 2 Java (JDK 7)。
我想使用 getPageSource() 方法将当前页面源以不同的名称保存在指定文件夹中。例如,将当前页面源保存为 C:/Holiday 文件夹下的 Hawai.htm。
大多数参考资料(包括可用的 Java 文档)仅涉及 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) {...}