自动化不好检查页面显示的图片是否正确,有时为了更全面的了解运行结果,所以要对页面进行保存,以提供更有效的资料。
在firefox中我们可以用capture_entire_page_screenshot方法,直接保存整个页面,但IE只能截取当前屏幕显示来保存,这样的话,如果web页面比较长,显示的东西不在当前显示的屏幕上时,所截的图,做用没不大了。
解决办法:
1.获取要检查元素的x,y坐标,
2.让web将所要检查的元素滚动出来
3.再进行截图(为了方便,让页面最大化且在前端显示)
代码如下:
$selenium.window_maximize #页面最大化
$selenium.window_focus # 页面到最前端
x=$selenium.get_element_position_left "//img[@title='AT']" # 获取元素的x轴坐标
y=$selenium.get_element_position_top "//img[@title='AT']" # 获取元素的y轴坐标
$selenium.run_script "window.scrollTo(x,y)" # web页面进行滚动
$selenium.capture_screenshot 'c:\test.png' # 保存截屏
注:如果网页不是很宽的话的x不重要,此方法是用ruby+selenium实现的。