Selenium入门学习-八大定位方法(二)

在Selenium WebDriver中,定位网页元素是实现自动化测试和操作的基础。Selenium提供了多种元素定位方式,每种方式都有其特点和适用场景。以下是Selenium中的八大元素定位方式:

所有定位元素都是基于百度来进行的:(selenium版本:4.23.0)

在介绍定位方式之前先来说一下定位工具,以Chrome浏览器为例,使用F12或右键检查进入开发者工具

from time import sleep

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
  1. ID定位。通过元素的ID属性来定位元素,元素必须具备有ID属性才可以使用。正常情况下来说ID值是唯一的

在这里插入图片描述

driver.find_element('id','kw').send_keys('selenium的定位方法')
driver.find_element('id','su').click()
  1. name定位。根据元素的name属性来定位元素。name属性是可以重复的,使用的时候要注意

在这里插入图片描述

driver.find_element('name','wd')
  1. class定位。根据元素的class属性来定位元素。name属性是可以重复的,使用的时候需要注意。

如果说class name是一个复合类(就是存在多个属性),则只能使用其中的任意一个属性值进行元素定位,不建议这么做,因为有可能会定位到多个元素

在这里插入图片描述

driver.find_element('class name','s_ipt')
  1. tag_name。通过元素的标签名来定位。比如input标签,a标签等。
    因为存在大量的标签,而且重复性高,所以再使用的时候需要确定能够代表目标元素的唯一性,才能使用。一般情况下,不建议使用这个方法来定位元素

在这里插入图片描述

driver.find_element('tag name','input')
  1. link_text。定位a标签。即a标签的全部文本内容,该该方法只能用于a标签。

在这里插入图片描述

driver.find_element('link text', '新闻')
  1. partial_link_text 定位。模糊匹配。通过元素的文本来进行模糊匹配。只限于a标签。也就是a标签的部分文本内容。如果有多个元素,默认返回第一个。

在这里插入图片描述

driver.find_element('partial link text', '新')
  1. css_selector定位。通过css选择器语法定位元素。定位界的万金油
  1. #element_id。定位具有id属性的元素
    在这里插入图片描述
driver.find_element('css selector', "#kw")
  1. .class_name.定位class的元素属性
driver.find_element('css selector', ".s_ipt")
  1. tag_name。定位具有指定标签的所有元素
    在这里插入图片描述
driver.find_element('css selector', "style")
  1. 通过属性或部分属性查找
通过属性查找
# driver.find_element('css selector', "标签名[属性='属性值']")
driver.find_element('css selector', "style[type="text/css"]")
# driver.find_element('css selector', "[属性='属性值']")
driver.find_element('css selector', "[type="text/css"]")

通过部分属性查找
# 查找class属性值以t开头的元素
driver.find_element('css selector','[class^="t"]')
# 查找class属性值以t结尾的元素
driver.find_element('css selector','[class$="t"]')
# 查找class属性值中包含t的元素
driver.find_element('css selector','[class*="t"]')
  1. 根据元素的父子关系查找。也就是层级关系

在这里插入图片描述

driver.find_element('css selector','div>div>div>div>div')
  1. 通过兄弟节点查找。

兄弟节点就是同一父级元素下,存在多个相同子标签。这些子元素就是兄弟节点

在这里插入图片描述

# 使用:a:nth-child(n) 来定位子标签,n表示第几个元素
# 定位第1 个a子标签:
driver.find_element('css selector','div#s-top-left>a:nth-child(1)')
  1. xpath属性定位。
  • 绝对路径。就是从HTML的根目录下一层一层的往下找。
    在这里插入图片描述
driver.find_element('xpath','html/head/script/...')
  • 相对路径。就是从第一个符合条件元素开始查找。以//开头,后边是跟标签名称或者**表示所有元素)
    • 语法://标签名或*[@(属性)id(属性名称)="kw"(属性值)]
      在这里插入图片描述
      查找框是:CTRL + F
  • text()文本值定位。
    通过标签的文本值。一般适用于p标签,a标签
    在这里插入图片描述
driver.find_element(By.XPATH, "//*[text()='新闻']").click()
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值