selenium IE截图问题

2011-10-19  王少平 

自动化不好检查页面显示的图片是否正确,有时为了更全面的了解运行结果,所以要对页面进行保存,以提供更有效的资料。
在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实现的。

640°/6394 人阅读/1 条评论 发表评论

小窝  2011-11-09

已同步至官方微博


登录 后发表评论