是否可以在InternetExplorerDriver中截取页面的可见部分?

时间:2017-02-26 12:41:51

标签: selenium webdriver selenium-iedriver

我需要在IEDriver中仅截取页面的可见部分,以便与其他驱动程序保持一致。对于其他驱动程序,我使用“滚动和缝合”方法来获取全高页面图像,但在某些情况下可能存在差异 - 例如,如果页面具有粘性标题。我宁愿选择这种或那种方式,但所有驱动程序都是一样的,而且并非所有驱动程序都能提供全页截图。

TakesScreenshot界面的文档说明了这一点:

  

对于扩展TakesScreenshot的WebDriver,这取决于浏览器的最大努力,以优先顺序返回以下内容:

     
      
  • 整页
  •   
  • 当前窗口
  •   
  • 当前帧的可见部分
  •   
  • 包含浏览器的整个显示的屏幕截图
  •   

我的问题是:

是否可以强制Internet Explorer仅截取当前窗口的屏幕截图?我知道通过API是不可能的,但可能有一些自定义功能或内部驱动程序设置可以更改?

1 个答案:

答案 0 :(得分:1)

我在Internet Explorer驱动程序服务器更新日志中找到了此信息:

  

v2.52.0.0

     
      
  • 发布以与Selenium项目的发布同步。
  •   
  • 更新JavaScript自动化原子。
  •   
  • (代表Anton Usmansky)添加了ie.enableFullPageScreenshot功能   允许用户仅创建当前视图端口的屏幕​​截图。该   capability默认为true,保留原始行为   调整浏览器窗口大小并获取整页的屏幕截图。
  •   

我尝试过它实际上有效! Java的示例代码(与IE11一起使用 - 我没有用其他版本测试它):

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("ie.enableFullPageScreenshot", false);
WebDriver driver = new InternetExplorerDriver(caps);