我正在尝试捕获正在测试的Web应用程序的内容区域的图像。
我需要从我的图片中删除浏览器菜单,以便用户可以在不同浏览器之间主持内容图像。
这应该在任何PC分辨率和任何浏览器上运行。
给定的硒方法提供了捕获整个窗口的方法:
Selenium.CaptureScreenshot(filename),
Selenium.CaptureEntirePageScreenshot(filename,kwargs)
此外,当尝试计算帧的大小时,selenium会相对于浏览器帧提供像素数,这意味着(0,0)
是浏览器的左上角而不是屏幕。
如何使用selenium与.NET结合捕获相关内容区域?
答案 0 :(得分:1)
我同意Patterson使用CaptureEntirePageScreenshotToString而不是CaptureEntirePageScreenshot。
其次,为了进行比较,您需要任何图像比较实用程序来执行比较两个图像或图像部分的工作,例如ISFW为Java实现提供ImageCompareUtil。 在您的情况下,您需要将捕获的图像的一部分与基础图像进行比较。 如果是FF,捕获的图像将包含整个页面内容,而在IE的情况下它只包含可见内容,你仍需要一些逻辑用于跨浏览器。
对于不同的分辨率,您可以在捕获屏幕截图之前将浏览器窗口调整为预期的分辨率。
希望这会有所帮助。
答案 1 :(得分:0)
听起来你已经知道了答案。我们使用Selenium.CaptureEntirePageScreenshotToString()
,因为我们以可能没有浏览器和测试脚本在同一系统上运行的方式运行我们的测试,但它在核心使用与Selenium.CaptureEntirePageScreenshot()
相同的代码。唯一的区别是我们的方式返回BASE64编码的PNG图像,所以我们不必从磁盘上获取它。