0

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

TakesScreenshot 接口的文档说明了这一点:

对于扩展 TakesScreenshot 的 WebDriver,这将尽最大努力根据浏览器按优先顺序返回以下内容:

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

我的问题是:

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

4

1 回答 1

1

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

v2.52.0.0

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

我试过了,它确实有效!Java 的示例代码(适用于 IE11 - 我没有用其他版本测试它):

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("ie.enableFullPageScreenshot", false);
WebDriver driver = new InternetExplorerDriver(caps);
于 2017-02-26T23:09:42.070 回答