网站建设资讯

NEWS

网站建设资讯

如何用自动化测试工具实现元素定位?

1、selenium元素定位样例

创新互联主要从事网站制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务迎泽,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

 以下是一段Python+ selenium的用例样例,对元素的操作是以元素id为基础的

 from selenium import webdriver
 url = "http://10.98.110.44/egov-portal/egov/shIndex.html"
 # 打开浏览器,最大化浏览器
 driver = webdriver.Chrome()
 driver.get( url )
 driver.implicitly_wait( 10 )
 driver.maximize_window()
 #输入账号
 driver.find_element_by_id("username").send_keys(“zhangsan")
 #输入密码
 driver.find_element_by_id("password").send_keys("ww1234")
 #点击登录按钮
 driver.find_element_by_id("submitButton").click()

 2、robotFramwork+seleniuLibrary元素定位样例

如何用自动化测试工具实现元素定位?

3、UFT工具元素定位方法样例

Dialog("Login").WinEdit("AgentName:").Set "mercury"
Dialog("Login_2").WinButton("Help").Click
Dialog("Login_2").Dialog("FlightReservations").Static("The password is 'MERCURY'").CheckCheckPoint("The password is 'MERCURY'")
Dialog("Login_2").Dialog("FlightReservations").WinButton("确定").Click
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").Activate
Window("FlightReservation").ActiveX("MaskEdBox").Type "102715"
#选择日期
Window("Flight Reservation").WinComboBox("FlyFrom:").Select "Frankfurt"

 从以上信息我看到,元素的定位都是通过元素的属性定位,元素属性主要有以下8种:

 1、id定位: driver.find_element_by_id("kw")

 2、name定位: driver.find_element_by_name("wd")

 3、class定位: driver.find_element_by_class_name("s_ipt")

 4、tag定位:driver.find_element_by_tag_name("input")

 5、link定位:driver.find_element_by_link_text("新闻")

 6、partial_link定位:driver.find_element_by_partial_link_text()

 7、xpath定位: driver.find_element_by_xpath("/html/body/div[2]/div/form/div/input")

 8、CSS定位:driver.find_element_by_css_selector

在现有的自动化软件当中,都是以上述8种定位方式中的一种对元素进行定位。现在现实的测试环境经常不是我们想象的那样平静。页面中出现id,name,tag 重复的很多。也许在我们写用例的不重复,经过一轮版本修改后很可能变得重复了。xpath是最不可能失效的,但是经常因父节点的修改而导致失效是常有的事。因此自动化设计人员疲于奔命的维护用例,工作量非常的巨大。

 2008年市场上出现一款kylinTOP的软件,支持智能元素定位, 我比较感兴趣就去研究了一下,该软件的用例主要通过录制生成,录制生成一些可视化的脚本,如下所示:录制脚本是打开一个页面,击点一个按钮。如何用自动化测试工具实现元素定位?

上图是点按钮的步骤,步骤中记录了按钮的多个属性:title|alt、src、border、alt、xpath以及它的孩子信息。有些属性并不能唯一定位元素(页面中存在重复),如:border。kylinTOP记录下了按钮元素的所有身份信息。当笔者尝试修改页面代码中title|alt的值 ,使页面中title|alt的值有重复。在脚本回放时,仍然可以正常运行。恢复title|alt值 ,重复上述修改步骤,逐个修改其它属性值,仍然不影响脚本运行。通过测试发现,修改按钮任何属性都不影响脚本执行。


文章题目:如何用自动化测试工具实现元素定位?
文章源于:http://njwzjz.com/article/pgopig.html