Python+selenium+eclipse执行web自动化(三)浏览器frame及element定位

WEB页面上frame及element定位,需要先了解页面HTML结构,如下图所示:

在Firefox或者IE中按F12按键调用开发人员工具,在HTML界面可以看到页面的大体结构(也可参考http://wenku.baidu.com/view/f7f7514e763231126edb117a.html?re=view学习更多HTML内容)。首先是HTML底层,然后是head头文件和body主体文件。在此界面可使用箭头图形按钮来快速获取某个控件的对应信息,如所在frame的名称、控件的名称、ID等。

通过selenium 2.0的webdriver执行web自动化时,经常有点击某个控件后界面跳转了,或者弹出窗口的问题,此时要在新页面或者弹出窗上进行控件操作,就必须使用webdriver的switch_to_frame(targetFrameName)语句重新加载到新的界面或者弹出窗口。

以Firefox为例,使用火狐浏览器提供的firebug和firepath两种工具,以便快速页面元素定位,安装后在Firefox浏览器界面按F12可调用firebug,而firepath则集成在firebug中。如下图:

在右上角搜索栏输入iframe关键字可以搜索当前页面的frame信息,将需要的页面的frame信息提取出来后作为targetFrameName输入到上面的switch_to_frame语句中,可以实现frame间的跳转、加载。

控件信息则可使用箭头图形来快速获取(所在frame的名称、控件的名称、ID等),由于部分开发人员不同开发特点导致部分控件没有name或者id等关键信息的,可以使用firepath工具获取控件的xpath,点击firepath按钮进入firepath界面,单击箭头按钮后再点击需要定位的控件,在Xpath后的显示框即可获得该控件的xpath信息。

在脚本中使用find_element_by_xpath(xpath)语句可以定位到该控件并执行需要的操作

 

posted @ 2016-07-06 16:24  十二点几  阅读(828)  评论(0编辑  收藏  举报