Python +selenium 自动化之元素定位

selenium之八大元素定位:

1、通过ID的方式定位  id是页面的唯一标识

例如:找到百度的搜索输入框

driver.findElement(By.id("kw"))

2、通过tagName的方式定位     

用标签名定位非常少 ---一般会重复
driver.findElements(By.tagName("input"));

3、通过className方式定位      className == 样式名
注意:如果元素的class样式有多个,只能通过其中一个去定位
driver.findElement(By.className("s_ipt"))

4、linkText  超链接的完整文本

例如:百度首页的地图
driver.findElement(By.linkText("地图"))

5、partialLinkText超链接部分文本定位

例如:百度首页的百度热搜 

driver.findElement(By.partialLinkText("中国迈入创新型国家行列"))

6、name ---name属性

例如:百度首页的输入框
driver.findElement(By.name("wd"))

7、cssSelector
1)根据标签名定位 tagName
driver.findElements(By.cssSelector("input"));

2) 根据ID定位 id前需要加上一个#
driver.findElement(By.cssSelector("#kw"))

3)通过样式名className查找 在样式名前加一个.号
driver.findElement(By.cssSelector(".s_ipt"))
driver.findElement(By.cssSelector(".bg s_btn"))

4)根据属性名查找 (标签名[属性名="属性值"])

属性名查找又可以分为单属性或者多属性

单属性       标签名[属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd']"))


多属性     (标签名[属性名="属性值"] [属性名="属性值"] [属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd'][class='s_ipt'][maxlength='255']"))

8、xpath 定位
1)xpath绝对路径 -----容易发生变化,不建议使用

就是根据html格式的路径 一 层层找到需要定位的元素

driver.findElement(By.xpath("html/body/div[1]/div[1]/div[1]/div[1]/form/span[1]/input"))


2)相对路径 

格式://->相对路径   标签名[@属性名='属性值']
百度输入框查找

标签名不确定时用*                           例一: //*[@name='wd']     #通过下标:  //a[@属性名 and @属性名][1]

标签名确定则用标签名代替               例二: //input[@name='wd']
多属性查找, 用and 连接                 例三: //input[@name='wd'] and [@autocomplete='off']
支持文本定位                                   例四: //a[text()='抗击肺炎']
xpath 部分文本的匹配                      例五: //a[contains(text(),'击肺炎')]
xpath 部分属性的匹配                      例六: //input[contains(@type,'submi')]
 

3)xpath 轴定位

常用的轴名称主要有父节点parent 、当前节点之前的所有兄弟节点precedling-sibling、当前节点之后的所有兄弟节点following-sibling

轴定位:
# 找子孙后代
//标签[@属性名 ]//标签[@属性名]//标签名[属性名]

# 轴运算
//a[@id='kw']/ancestor::标签名[@属性名]
# 找哥哥姐姐
//标签[@属性名 ]/preceding-sibling::标签名[@属性名]
# 找弟弟妹妹
//标签[@属性名 ]/following-sibling
#找后代
//li[@class='side-menu__item']/descendant::span[text()='基础']

🎁更多干货


完整版文档下载方式:

这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。

在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。


如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值