温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-05-23 13:51:57 来源:亿速云 阅读:329 作者:鸽子 栏目:移动开发

1、selenium元素定位样例

 以下是一段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值 ,重复上述修改步骤,逐个修改其它属性值,仍然不影响脚本运行。通过测试发现,修改按钮任何属性都不影响脚本执行。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI