Selenium禁用定位固定内容删除重复数据同时获取整个网页截屏

时间:2015-07-07 08:48:06

标签: javascript java html css selenium-webdriver

我可以通过滚动到window.inner高度拍摄整个页面的屏幕截图,但在所有页面中组合面临重复(位置固定页眉/内容)的问题。 是他们解决此问题的任何解决方案。请清楚地发布您的答案。 enter image description here

FireFox 打开Developer Toolbar并点击shift + f2然后输入此命令。
screenshot d:\yash.png --fullpage 然后它减少了clientWidth并截取屏幕截图。 Selenium-WebDriver FireFox - ScreenShot

selenium与IE 一起使用(取消选中安全和隐私复选框并减少互联网,将所有Cookie接受为零)。 使用ieCapabilities.setCapability("ignoreZoomSetting", true); 然后它通过减少客户端宽度而没有任何图像像素问题来获取整个页面的屏幕截图。但是本网站上的屏幕截图:http://help.dottoro.com/ljlumkqh.php与预期不符。

但在 Chrome 中,只需visible part个网页。为了服用 整页屏幕截图我们需要滚动到clientHeight并将所有内容组合在一起 屏幕截图。

2 个答案:

答案 0 :(得分:0)

首先,您无需滚动以获取硒的全屏幕截图。

删除重复数据的方法:

  • 采取完整的窗口屏幕截图&不要将其保存到任何文件中。
  • 观察重复数据(标题对象)
  • 使用ImageIO.read()方法为屏幕截图文件创建bufferedImage对象。
  • 获取x& y使用.getLocation().getX()/getY()方法协调重复部分(标题)。
  • 从整个屏幕截图中使用.getSubimage()方法删除重复数据。
  • 然后使用ImageIO.write()方法将图像保存到任何文件。

答案 1 :(得分:0)

我认为应该有一些代码来支持你的问题。

但是,假设您明确滚动页面以截取屏幕截图。

解决方案/建议/提示:默认情况下,Selenium会滚动页面以获取整个页面的屏幕截图。

Please refer the screenshot captured by the code.

采取上述截图的代码:

    WebDriver driver = new FirefoxDriver();
    driver.get("http://www.w3schools.com/html/default.asp");
    File myScreenShot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(myScreenShot, new File("D:\\ff.png"));

有关截屏的详情,请参阅this