webdriver定位元素
在UI层面的自动化测试开发中,元素的定位与操作是基础。webdriver提供了很多种定位方法,以下总结了6种:
1、万能法:find_element_by_xpath("")
driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[1]/ul/li[1]/ul/li[4]").click() #点击右侧菜单栏
2、id定位:find_element_by_id("id"),id属性是唯一的
driver.find_element_by_id("loginName").clear()#用户名输入框的id属性 driver.find_element_by_id("loginName").send_keys("admin") driver.find_element_by_id("pwdTip")..clear()#密码输入框的id属性 driver.find_element_by_id("pwdTip").send_keys("111111")
3、class定位,可使用类名,也可使用css选择器,类名不唯一
#唯一的类 driver.find_element_by_class_name("ivu-btn")#登录按钮,使用类名 driver.find_element_by_css_selector(".ivu-btn")#登录按钮使用CSS选择器 #不是唯一的类 driver.find_elements_by_class_name("ivu-input-default")[0].clear() driver.find_elements_by_class_name("ivu-input-default")[0].send_keys("wzj")#用户名,使用类名(注意类名不能追加,只能有一个) driver.find_elements_by_css_selector(".ivu-input.ivu-input-default")[1].clear() driver.find_elements_by_css_selector(".ivu-input.ivu-input-default")[1].send_keys("pubmi111")#密码框,使用CSS选择器(注意追加类时不能有空格,用.追加)
4、tag_name定位,使用元素的名称,find_element_by_tag_name("标签");tag_name可以不唯一,识别性比较低,一个页面会员大量的重复元素
#唯一 driver.find_element_by_tag_name("input").click() #不唯一 driver.find_elements_by_tag_name("input")[0].click()#选择学段:初中 driver.find_elements_by_tag_name("input")[1].click()#选择学科:语文
5、标签属性name定位,find_element_by_name("标签");name为自定义标签属性值,识别性较高
driver.find_elements_by_name("PeriodName")[1].click()#选择学段:初中 driver.find_elements_by_name("SubjectName")[0].click()#选择学科:语文
6、link定位:专门用来定位文本链接,find_element_by_link_name("text");
driver.find_element_by_link_text(u"退出").click()#页面右上方的一些个人操作,比如退出、个人中心、消息通知等
partial link定位:是对link定位的一种补充,当链接上的文本内容比较长的时候,可以取文本的一部分进行定位,当然这部分可以唯一地标识这个链接
分享促进成长