【问题标题】:How to capture entire scrolling <div> into an image如何将整个滚动 <div> 捕获到图像中
【发布时间】:2010-11-10 08:53:38
【问题描述】:

我目前正在使用“Selenium”在 Java 中开发 Web 自动化脚本。我正在尝试找到一种将整个滚动 DIV(html) 捕获到图像中的方法。有什么快速的解决方案吗??

示例:http://i.stack.imgur.com/AZduC.png

【问题讨论】:

  • 截屏?你想要一张照片吗?
  • 抱歉给您带来了困惑。我正在尝试找到一种将整个滚动 div 捕获到图像中的方法。示例: h t t p : // i.imgur.com/AZduC.png

标签: java selenium


【解决方案1】:

当你说你想要内容时,你是指 HTML 还是只是屏幕上的文本?如果是文本,您可以使用像 selenium.getText(//div[@id='theDiv']) 这样的 XPATH。如果它是 HTML,您可以将页面上的 JavaScript 评估为 innerHTML,如下所示:

selenium.getEval("this.browserbot.getCurrentWindow().document.getElementById('theDiv').innerHTML")

【讨论】:

  • 抱歉给您带来了困惑。我正在尝试找到一种将整个滚动 div 捕获到图像中的方法。示例:h t t p://i.imgur.com/AZduC.png
【解决方案2】:

您可以使用 Selenium 的 captureEntirePageScreenshot(String imageFileURLToWrite) 获取整个页面的屏幕截图。

原则上应该可以对图像进行后处理以仅提取 DIV。您需要计算出 DIV 的确切像素边界,这可能需要使用 getEval() 在客户端上运行一些 JavaScript。

【讨论】:

    【解决方案3】:

    很简单。

    1. 您从浏览器窗口截取屏幕截图

    2. 你取 Div 的 X 和 Y 位置

    3. 你取Div的大小:宽度和长度

    4. 使用步骤 1 中截取的屏幕截图中的 2 和 3 中的信息创建具有相同大小的位图并复制子图像。

    如果你愿意,我可以给你来自 C# 的代码。但它并不难,我相信你可以自己编写代码。

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多