2011-11-06 74 views
0

我正在尝试捕获正在测试的Web应用程序的内容区域的图像。捕获内容帧的图像/弹出

我需要消除我的图片浏览器菜单,使用户可以不同的主持人浏览器之间内容的图像。

这应该在任何电脑的分辨率和在任何浏览器上运行。

给定的硒的方法提供了一种方式,以捕获整个窗口:

Selenium.CaptureScreenshot(filename), 
Selenium.CaptureEntirePageScreenshot(filename,kwargs) 

还试图计算帧硒的大小给予相对于浏览器框架的像素数,这意味着(0,0)是当浏览器的左上角不是屏幕。

我如何能捕捉利用与硒结合.NET的相关内容区域?

+0

当我使用第一个硒时,CaptureScreenshot对我无效。为了让硒工作,我想要我必须使用硒webdriver。 也许试试这里:http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver – deadfish

回答

1

我帕特森同意使用的,而不是CaptureEntirePageScreenshot CaptureEntirePageScreenshotToString。

其次,为了比较,您需要任何比较两个图像或部分图像的图像比较工具,例如ISFW为Java实现提供了ImageCompareUtil。 在你的情况下,你需要比较捕获图像的一部分和第一部分。 如果是FF,那么你仍然需要一些用于前置浏览器的逻辑,所捕获的图像将包括整个页面内容,而在IE的情况下它只包括可见内容。

对于不同的分辨率,您可以捕获屏幕快照之前调整浏览器窗口预期的分辨率。

希望这会有所帮助。

0

听起来像是你已经知道答案。我们使用Selenium.CaptureEntirePageScreenshotToString(),因为我们运行测试的方式可能没有浏览器和测试脚本在同一个系统上运行,但它在核心上使用的代码与Selenium.CaptureEntirePageScreenshot()相同。唯一的区别是我们的方式返回一个BASE64编码的PNG图像,所以我们不必从磁盘中获取它。