繁体   English   中英

Selenium Webdriver仅获取视口的屏幕截图

[英]Selenium Webdriver take screenshot of viewport only

我只需要当前视口的屏幕截图,尤其要注意滚动位置。 基本上是当前Chrome驱动程序的功能。

从我所阅读的内容看来,这应该是完全有可能的,但是由于某些原因,screenshot命令始终努力获取完整的文档截图。 实际上,IE驱动程序会拍摄多个视口镜头,然后将它们缝合在一起。

我使用的是Ruby Webdriver,无论如何我都看不到仅截取视口的屏幕截图。 可能吗?

在处理WebDriver时,有两个相互竞争的“屏幕快照”定义。 第一个是开放源代码项目使用的定义,其中屏幕快照定义为加载页面的整个DOM的图像。 在这种情况下,自2010年以来,IE驱动程序和Firefox驱动程序都在执行项目定义的正确操作。WebDriver的Chrome实施错误地返回了仅可见端口的图像。

另一方面, W3C WebDriver规范将屏幕快照定义为仅当前视口。 这与当前的开放源代码项目的驱动程序实现(IE和Firefox)不一致,并且可以预期在将来发生变化。 规范达到“候选推荐”状态后,可能会更新那些驱动程序。

顺便说一句 ,应该注意的是,IE驱动程序绝不使用“滚动拼接”方法来创建其屏幕截图。 确实将浏览器窗口调整为足以显示整个DOM的大小,以显示整个DOM(如在请求屏幕快照时计算的那样),并拍摄图像。 但是,请注意,根据操作系统和所使用的IEDriverServer可执行文件的位数 ,生成完整的DOM屏幕截图时,IE 10和11存在问题。

目前,您需要使用WebDriver外部的工具来获取IE和Firefox的仅查看端口的屏幕​​截图。

这是一个经常更改的问题。

AFAIK现在,Chrome-和IEDriver都仅捕获视口的屏幕截图,而FFDriver则捕获全页面的屏幕截图(FF将来会对此进行更改)。 另请参阅我对这个问题的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM