Python+selenium——元素定位学习笔记

Python+Selenium学习笔记之元素定位

书籍学习:《Selenium2 自动化测试实战——基于Python语言》P69-P83

定位方法类型释义格式与实例优缺点
id定位属性HTML规定Id属性在HTML文档中必须是唯一的,但是可能存在页面上的多个元素的id相同

格式:find_element_by_id("")

find_element_by_id("kw")

定位不到唯一的元素
name定位属性HTML规定name来指定元素的名称,name的属性值可以不唯一

格式:find_element_by_name("")

find_element_by_name("wd")

定位不到唯一的元素;不唯一,不必要
class定位属性HTML规定class来指定元素的类名

格式:find_element_by_class_name("")

find_element_by_class_name("s_ipt")

定位不到唯一的元素
tag定位属性tag不唯一,一个tag用来定义一类功能,因此重复性强

格式:find_element_by_tag_name("")

find_element_by_tag_name("input")

定位不到唯一的元素,重复性强
link定位属性定位文本链接

格式:find_element_by_link_name("")

find_element_by_link_name("新闻")

定位不到唯一的元素
partial link定位属性模糊定位,对于文本较长的链接,可选取一部分文本进行定位

格式:find_element_by_partial_link_text("")

find_element_by_partial_link_text("很长")

定位不到唯一的元素
Xpath定位绝对路径Xpath用标签名的层级关系来定位元素的绝对路径:最外层是html->body->标签

格式:find_element_by_xpath("")

div[2]:当前层级下的第二个div

find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input")

繁琐
利用元素属性

//:当前页面的某个目录下

input:定位元素的标签名

[@id='kw']:元素id等于kw

*:不想制定标签名

格式:1.find_element_by_xpath("//*[@属性='']")

2.find_element_by_xpath("//input[@属性='']")

实例:find_element_by_xpath("//input[@id='kw']")

find_element_by_xpath("//*[@class='bg s_btn']")

xpath不局限于id、name、class,元素的任意属性值都可以
层级与属性某一个元素没有可利用的属性值,可查找上一级属性

格式:find_element_by_xpath("//爷爷/父亲/儿子")

实例:find_element_by_xpath("//form[@id='form']/span/input")等价于

find_element_by_id("kw")

find_element_by_xpath("//form[@id='form']/span[2]/input")等价于

find_element_by_id("su")

是绝对路径的一种写法
逻辑运算符如果属性不能唯一地区分一个元素,可以使用逻辑运算符连接多个属性来查找元素find_element_by_xpath("//input[@id='kw' and @class='su']/span/input") 
CSS定位通过Class属性点号(.)表示通过class属性定位元素

格式:find_element_by_css_selector(".")

实例:find_element_by_css_selector(".s_ipt")

 

 
通过id属性井号(#)表示通过id属性定位元素

格式:find_element_by_css_selector("#")

实例:find_element_by_css_selector("#kw")

 
通过标签名 

格式:find_element_by_css_selector("")

实例:find_element_by_css_selector("input")

 

 

通过父子关系 

find_element_by_css_selector("span>input")

父元素为span,子元素为input

 
通过属性 

find_element_by_css_selector("[autocomplete=off]")

find_element_by_css_selector("[name='kw']")

find_element_by_css_selector('[type="submit"]')

 
组合定位 

find_element_by_css_selector("form.fm>span>input.s_ipt")

说明:标签form的class属性值fm下面的span标签下面的Input标签的class属性值s_ipt

find_element_by_css_selector("form#form>span>input#kw")

说明:标签form下的id值为form下面的span标签下面的Input标签的id值为kw

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值