我需要在IEDriver中仅截取页面的可见部分,以便与其他驱动程序保持一致。对于其他驱动程序,我使用“滚动和缝合”方法来获取全高页面图像,但在某些情况下可能存在差异 - 例如,如果页面具有粘性标题。我宁愿选择这种或那种方式,但所有驱动程序都是一样的,而且并非所有驱动程序都能提供全页截图。
TakesScreenshot界面的文档说明了这一点:
对于扩展TakesScreenshot的WebDriver,这取决于浏览器的最大努力,以优先顺序返回以下内容:
- 整页
- 当前窗口
- 当前帧的可见部分
- 包含浏览器的整个显示的屏幕截图
我的问题是:
是否可以强制Internet Explorer仅截取当前窗口的屏幕截图?我知道通过API是不可能的,但可能有一些自定义功能或内部驱动程序设置可以更改?
答案 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);