0

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

大多数参考资料(包括可用的 Java 文档)仅涉及 getPageSource() ,但没有什么特别不是在这种情况下需要的内容。

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

4

2 回答 2

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());
  }
  }
}
于 2012-10-22T05:24:10.790 回答
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) {...}
于 2015-05-28T11:29:27.337 回答