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定位的一种补充,当链接上的文本内容比较长的时候,可以取文本的一部分进行定位,当然这部分可以唯一地标识这个链接

 

posted @ 2019-01-10 11:51  琥珀主yang  阅读(378)  评论(0编辑  收藏  举报