selenium 八种定位元素的方式

2023-05-16

八种定位方式:id,name,class name,tag name,link text,partial link text,xpath,css selector。其中id,name,class name,tag name是根据元素的标签或元素的属性来进行定位;link text,partial link text是根据超链接的文本来进行定位;xpath为元素路径定位;css为选择器定位(样式定位)。

1:id定位
说明:id定位就是通过元素的id属性来定位元素;
前提:元素有id属性
id定位方法:find_element_by_id()
示例:打开百度搜索页面,通过id定位,输入搜索关键字

from selenium import webdriver
import time

# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过id定位
driver.find_element_by_id('kw').send_keys('python')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()

2:name定位
说明:HTML规定name属性来指定元素名称,name的属性值在当前文档中可以不是唯一的,name定位就是根据name属性来定位。
前提:元素有name属性
name定位方法:find_element_by_name()
示例:打开百度搜索页面,通过name定位,输入搜索关键字

from selenium import webdriver
import time

# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过name定位
driver.find_element_by_name('wd').send_keys('python')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()

3:class_name定位
说明:HTML规定class来指定元素的类名,class定位就是根据class属性来定位。
前提:元素有class属性
class_name定位方法:find_element_by_class_name()
示例:打开百度搜索页面,通过class_name定位,输入搜索关键字

from selenium import webdriver
import time

# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过class_name定位
driver.find_element_by_class_name('s_ipt').send_keys('python')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()

4:tag_name定位
说明:HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以tag定位效率低,一般不建议使用;tag_name定位就是通过标签名来定位。
tag_name定位方法:find_element_by_tag_name()

5:link_text定位
说明:link_text定位与前面4个定位有所不同,它专门用来定位超链接文本(文本值)
前提:定位的元素是链接标签(a标签)
link_text定位方法:find_element_by_link_text()
示例:打开百度首页,通过link_text定位到hao123按钮,并进行点击操作

from selenium import webdriver
import time

# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过link_text定位
driver.find_element_by_link_text('hao123').click()
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()

6:partial_link_text定位
说明:partial_link_text定位是对link_text定位的补充,partial_link_text为模糊匹配;link_text为精确匹配。
前提:定位的元素是链接标签(a标签)
partial_link_text定位方法:find_element_by_partial_link_text()
通过传入a标签局部文本或全部文本来定位元素,要求输入的文本能够唯一找到这个元素
示例:打开百度首页,通过partial_link_text定位到新闻,并进行点击操作

from selenium import webdriver
import time

# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过partial_link_text定位
driver.find_element_by_partial_link_text('新').click()
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()

7:xpath定位
xpath概述:
1、xpath即为xml path的简称,它是一种用来确定XML文档中某部分位置的语言。
2、HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中来定位元素。
3、xpath为强大的语言,是因为它有非常灵活的定位策略。
xpath定位策略(方式):
1、路径定位–绝对路径、相对路径;
2、利用元素属性定位;
3、层级与属性结合定位;
4、属性与逻辑定位结合。
xpath定位方法:find_element_by_xpath()

8:css定位
css概述:
1、css(Cascading Style Sheets)是一种语言,它用来描述HTML和XML的元素显示样式。
2、css语言中有css选择器,在selenium中也可以使用这种选择器来进行元素定位。
3、css定位方式比xpath快,而且css的语法也非常强大,所以非常推荐这种方式定位。
css定位策略(方式):
1、id选择器
2、class选择器
3、元素选择器
4、属性选择器
5、层级选择器
css定位方法:find_element_by_css_selector()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium 八种定位元素的方式 的相关文章

随机推荐

  • python下载安装教程

    1 下载python 下载地址 xff1a https www python org xff0c 点击Downloads 选择对应电脑系统 xff0c 进行下载 xff08 文末送读者福利 xff09 2 安装python xff0c 以p
  • windows修改环境变量

    windows的环境变量有两套 xff1a 系统的当前用户的 不同的用户可以拥有不同的环境变量 xff0c 当前用户的环境变量优先级比系统的环境变量优先级高 xff0c PATH环境变量比较特殊 xff0c 它不是替换而是拼接 在命令行下也
  • 为什么不建议学python

    前言 目前信息化产业发展势头很好 xff0c IT就成为了很多普通人想要涉及的行业 xff0c 因为相比于传统行业 xff0c IT行业涨薪幅度大 xff0c 机会也多 xff0c 所以就会大批的人想要转行来学习Python开发 目前来讲市
  • 学完python可以从事哪些行业?

    前言 1 web开发 对于一些网站的开发 xff0c 诸如后台管理系统 xff0c 或者一些微服务 xff0c 写一些接口 xff0c 都可以使用 Python 实现 Python有很多优秀的Web开发框架 xff0c 如Flask Dja
  • 0基础学Python爬虫2个月怎么赚钱?了解一下

    前言 Python是一门编程语言 xff0c 一门技术 xff0c 一个生产力工具 只要你能掌握生产工具 xff0c 就能赚钱 xff0c 也许能像那位知乎大神一样躺赚200万 xff0c 即便不能 xff0c 至少赚个外快是没有问题的 x
  • 年薪30w+,为啥大数据工程师才是真正的高富帅?

    前言 大家有没有过这样的经历 xff1a 朋友圈推送的广告越来越频繁 xff0c 恰恰还是前几天想买的 xff1f 在某宝搜了款键盘 xff0c 结果往后很多天一直精准推送键盘 xff0c 还一个比一个贵 刷视频手滑点赞美食视频 xff0c
  • 这才是最适合新手的python基础教程,640页超详细

    前言 python入门虽然简单 xff0c 很多新手依然卡在基础安装阶段 xff0c 大部分教程对一些基础内容都是一带而过 xff0c 好多新手朋友 xff0c 对一些基础知识常常一知半解 xff0c 需要在网上查询很久 扎实的基础知识 x
  • python数据预测——学习数据分析需要多少python基础?

    前言 工欲善其事 必先利其器 xff0c 搭建Python环境 学习Python语言 理解数据分析工作是入行Python数据分析最基本的三要素 但是还要有个最重要的前提是经验和思维 这个过程就好比做日料 xff0c 首先要有厨具 xff0c
  • python副业介绍以及渠道推荐,接单注意事项

    这是本文的目录 前言Python为什么会大受欢迎python副业有哪些1 兼职处理数据2 兼职查询资料3 兼职P图4 爬虫类5 平台接单 Python赚外快的一些其它方式1 xff09 自媒体也是个风口2 xff09 知识付费分享3 xff
  • python的未来前景,超详细根据好多资料总结出来的

    这是本文的目录 前言一 Python语言广泛二 Python发展前景二 Python选择方向四 Python就业情况五 薪资待遇好零基础Python学习资源介绍 x1f449 Python学习路线汇总 x1f448 x1f449 Pytho
  • 如何将python程序打包成apk?

    前言 如果想使用 Python 语言编写图形界面程序 xff0c 那么有不少的框架可以提供支持 xff0c 比如 Tkinter Qt for Python WxPython等等 不过 这些框架都是只能创建桌面图形界面程序 xff0c 比如
  • 容联云短信python接口单例封装

    容联云短信python接口单例封装 安装pip3 install ronglian sms sdk 注意 xff1a 免费开发测试使用的模板ID为1 xff0c 具体内容 xff1a 云通讯 您的验证码是 1 xff0c 请于 2 分钟内正
  • mac 更新终端命令行显示信息

    mac下自定义终端显示内容 xff0c 如自定义 xff0c 显示名称 xff0c 隐藏计算机名 xff0c 用户名 1 编辑 etc bashrc xff0c 使用如下命令 sudo vi etc bashrc 2 打开文件后 xff0c
  • React Fragment 用途说明-节点片段,不创建额外DOM

    一 React 节点片段解决的问题 由于React 组件只能有一个根标签 xff0c 例如以下片段无效 xff1a ReactDOM render lt div gt Row1 lt div gt lt div gt Row2 lt div
  • 分布式延迟消息队列asynq

    asynq分布式延迟消息队列源码分析 设计思路 延迟队列设计思路 xff1a zset的分值为时间消息有状态 xff1a 活跃 xff0c 计划中 xff0c 重试 xff0c 已完成等 xff0c 状态迁移使用list xff0c 如果状
  • jmeter设置为中文的两种方法

    jmeter默认是英语环境 xff0c 但是可以通过设置来显示为中文 方法一 xff1a 在jmeter面板上选择Options gt Choose Language gt Chinese 但是这种方法设置的只能在当前界面生效 xff0c
  • requests常用方法 之 post请求

    post方法 xff1a 作用 xff1a 提交资源 新增资源 步骤 xff1a 1 导包 xff1a import requests 2 参数 3 调用post方法 xff1a r 61 requests post url json da
  • postman全局变量设置

    postman全局变量的设置 xff1a 设置的全局变量可以供postman所有的工程使用 xff0c 即所有接口都可以调用全局变量 示例1 xff1a 对手机号码归属地查询的手机号码设置为全局变量 xff0c 并调用 步骤1 点击Envi
  • postman使用(读取)json文件做批量测试

    postman json文件参数化 xff1a 步骤 xff1a 1 准备json文件 xff1b 2 接口中引用变量 xff1b 3 测试集中导入数据文件 xff1b 4 点击 Run用户 xff0c 进行运行 xff1b 5 查看运行结
  • selenium 八种定位元素的方式

    八种定位方式 xff1a id xff0c name xff0c class name xff0c tag name xff0c link text xff0c partial link text xff0c xpath xff0c css