ID 元素定位
id:基于元素属性中的id的值来进行定位,类似于人们身份证上的身份证号码,不出意外都不会重复
driver.find_element_by_id('id')
name 元素定位
name:基于元素属性中的name的值来进行定位,类似于人们身份证上的名字,很可能会出现重名
driver.find_element_by_name('name')
link text 元素定位
link text:主要用于超链接进行定位
driver.find_element_by_link_text('注册')
partial link text 元素定位
partial link text:link text模糊查询版本,类似于数据库中的link %,当模糊查询匹配到多个符合调节的元素,选取第一个
driver.find_element_by_partial_link_text("册")
classname 元素定位
classname:基于元素class样式来定位,非常容易遇到重复的
driver.find_element_by_class_name("am-btn am-btn-secondary am-btn-xs am-radius")
tagname 元素定位
tagname:标签名来进行定位,重复度最高,只有在需要定位后进行二次筛选的情况下使用
driver.find_elements_by_tag_name("a")
cssselector 元素定位
cssselector:通过绝对路径定位:这种方式几乎不用
driver.find_element_by_css_selector("body > div.am-g.my-content > div > div.am-u-sm-12.am-u-md-6.am-u-lg-4.container-right > div.forgetpwd-top > a")
xpath 元素定位
xpath:1、通过绝对路径定位,这种方式几乎不用
driver.find_element_by_xpath("/html/body/div[4]/div/div[2]/div[1]/a")
xpath:2、通过相对路径进行定位,格式“//+唯一的父标签+/子标签……”
driver.find_element_by_xpath('//form/span/input')
xpath:3、通过元素属性定位
# 单属性定位
driver.find_element_by_xpath("//input[@name='pwd']")
# 多属性定位
driver.find_element_by_xpath('//a[@title="Tutorialspoint" and @rel="nofollow"]')
xpath:4、通过元素部分属性定位
# 以部分属性值开头
driver.find_element_by_xpath("//a[starts-with(@title,'Tutorial')]")
# 包含部分属性值
driver.find_element_by_xpath("//a[contains(@title,'Tutorial')]")
driver.find_element_by_xpath("//a[contains(text(),'百度')]")
xpath:5、通过文本定位
driver.find_element_by_xpath("//span[text()='Login']")
这几种查找元素的效率中,id>name>xpath。网页中使用Copy Xpath不准确,不建议使用。有些元素每次网页刷新,属性值都会改变,这称之为动态元素,只能用其他方法定位。
下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!