如何以不同的名称保存当前页面源夹

时间:2012-10-21 23:34:10

标签: java selenium selenium-webdriver

我想使用getPageSource()方法将当前页面源保存在指定文件夹中的不同名称下。例如保存当前页面源 作为C:/ Holiday文件夹下的Hawai.htm。

包括Java doc在内的大多数参考资料只涉及到getPageSource(),但没有具体说明在这种情况下不需要的内容。

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

2 个答案:

答案 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) {...}