Selenium基础应用知识&Web元素定位
1、浏览器操作
目前市面上主流的浏览器有FireFox、IE及Chrome等,Selenium起源于FireFox,因此默认支持的是FireFox,而IE及Chrome则需要一些简单的设置。
在学习如何使用Selenium开展Web自动化测试前,先熟悉下Selenium应用的基础知识。
01. 打开网页
02. Wait time
如需在操作之间设置停留等待时间,则可使用time.sleep(n)方法。Time方法不能直接使用,需先导入time包,n为秒数。
03. 页面刷新
当执行某些操作,如数据添加后,页面未能及时刷新,可利用driver.refresh()方法进行页面刷新,一般与time.sleep()方法组合使用。
04. 设置大小
如果打开的窗口不是全屏,或者需要设为特定的大小,则可以使用maximize_window()和set_window_size()进行调整。
05. 页面截屏
测试执行过程中发现缺陷,需要截屏时,可利用get_screenshot_as_file()方法进行截屏,如:
需要注意的是,此方法截屏是整个对象界面,而不是单独某个区域。
06. 关闭窗口
关闭窗口有两种方法:close、quit,当对象操作完成需关闭窗口时,可使用close和quit。二者的区别是:
Close:关闭当前窗口,可用于某个具体窗口关闭。
Quit:关闭所有与当前操作有关联的窗口,并退出驱动。需释放资源时可使用此方法。
2、Web元素定位
UI层面的自动化测试中,测试工具需根据对象识别方法识别待测对象,然后驱动其完成模拟操作,Selenium亦不例外,模拟用户手工操作的前提是识别待驱动的对象,因此如何识别测试对象,是能否实现自动化测试关键。
Selenium提供了非常多的对象元素识别方法,本教程仅介绍常用的几种方式。
01. 元素查看工具
Selenium基于FireFox应用诞生,因此在FireFox中提供了一个非常好的元素基本信息查看工具:FireBug及FirePath。FireBug、FirePath在FireFox的附加组件中搜索安装即可。
图1 FireBug及FirePath插件
安装了FireBug及FirePath后,利用FireFox打开被测Web系统的页面时,可查看某个具体元素的详细属性信息,如图2所示。
图2用户名输入框详细属性信息
上图展示了利用FireBug及FirePath查看“用户名”输入框的详细属性信息,通过分析得到如下的元素信息:
这样,Selenium可利用丰富的元素查找方法在被测页面中查找到该元素。
02. Id查找元素
如果元素在HTML页面中设置了id属性值,Selenium可通过该id找到该元素,以ECShop前端用户注册界面为例,利用IE的开发者工具查看用户名属性,如图 3所示。
图 3用户名id查找示例
上图显示,用户名输入框对象存在id且id值为“username”,Selenium可利用find_element_by_id()查找该元素,进行相关操作,如:
03. Name查找元素
与id类似,如果测试对象属性中有name值,可利用find_element_by_name()查找并进行相关操作,如:
04. Class Name查找元素
如果元素存在Class Name,可利用find_element_by_class_name()查找并进行相关操作,如图 3中,除了id及name值外,还有“inputBg”,则可进行如下操作识别:
05. Link Text查找元素
通过某个超链接的文本字符进行查询,也是个不错的选择。如图 4所示:
图 4通过link text查找元素
利用find_element_by_link_text()查找“免费注册”元素并进行点击操作,从而进入用户注册页面:
06. Partial Link查找元素
当某个元素的超链接内容较长时,可利用模糊匹配的方法进行识别,如: