0


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"));

  1. 根据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()='基础']

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】


本文转载自: https://blog.csdn.net/Xsk215/article/details/142060575
版权归原作者 程序员Baby~ 所有, 如有侵权,请联系我们删除。

“Python +selenium 自动化之元素定位”的评论:

还没有评论