【问题标题】:Is it possible to take screenshot of visible part of page in InternetExplorerDriver?是否可以在 InternetExplorerDriver 中截取页面可见部分的屏幕截图?
【发布时间】:2017-07-17 01:20:36
【问题描述】:
我需要只截取 IEDriver 中页面的可见部分,以便与其他驱动程序保持一致。对于其他驱动程序,我使用“滚动和缝合”方法来获取全高页面图像,但在某些情况下可能存在差异 - 例如,如果页面具有粘性标题。我宁愿采取一种或另一种方式,但对所有驱动程序都一样,并且并非所有驱动程序都提供截取整页屏幕截图的能力。
TakesScreenshot 界面的文档说明了这一点:
对于扩展 TakesScreenshot 的 WebDriver,这将尽最大努力根据浏览器按优先顺序返回以下内容:
- 整个页面
- 当前窗口
- 当前帧的可见部分
- 包含浏览器的整个显示屏幕截图
我的问题是:
是否可以强制 Internet Explorer 仅截取当前窗口的屏幕截图?我知道通过 API 是不可能的,但也许有一些自定义功能或内部驱动程序设置可以更改?
【问题讨论】:
标签:
selenium
webdriver
selenium-iedriver
【解决方案1】:
我在 Internet Explorer 驱动程序服务器更改日志中找到了此信息:
v2.52.0.0
- 发布以与 Selenium 项目的发布同步。
- 对 JavaScript 自动化原子的更新。
- (代表 Anton Usmansky)添加了 ie.enableFullPageScreenshot 功能
允许用户仅创建当前视口的屏幕截图。这
能力默认为真,它保留了原始行为
调整浏览器窗口大小并截取整个页面。
我试过了,它确实有效! Java 的示例代码(适用于 IE11 - 我没有使用其他版本对其进行测试):
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("ie.enableFullPageScreenshot", false);
WebDriver driver = new InternetExplorerDriver(caps);