Python selenium元素的定位

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他 会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这 个人。

那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。

注意:不管用那种方式,必须保证页面上该属性的唯一性

webdriver 提供了一系列的对象定位方法,常用的有以下几种

id 通过标签id定位

name 通过标签name定位

class name 通过标签class定位

link text 通过超链接文本定位

partial link text 通过超链接文本(模糊匹配)定位

tag name 通过标签名定位

xpath 通过xpath方式定位

css selector 通过css选择器方式定位

webdriver提供了两个方法查询元素

find_element (查询第一个匹配元素) 和find_elements(查询所有匹配元素)

参考代码:

python 复制代码
import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 创建浏览器操作对象
browser = webdriver.Chrome()
url = "https://www.baidu.com/"

browser.get(url)

# 元素定位

# 根据id查找对象
button = browser.find_element(By.ID, 'su')

print(button)

# 根据标签名查找
e1 = browser.find_element(By.TAG_NAME, 'input')
print("e1", e1)

# 根据标签的name属性值查找
e2 = browser.find_elements(By.NAME, "wd")
print("e2", e2)

# 根据xpath查找
e3 = browser.find_elements(By.XPATH, '//input[@id="su"]')
print("e3", e3)

# 使用css选择器方式查找
e4 = browser.find_element(By.CSS_SELECTOR, ".s_ipt")
e5 = browser.find_element(By.CSS_SELECTOR, "#su")
print("e4", e4)
print("e5", e5)

# 使用链接文本查找
e6 = browser.find_element(By.LINK_TEXT, "新闻")
e7 = browser.find_elements(By.PARTIAL_LINK_TEXT, "新")
print("e6", e6)
print("e7", e7)

# 使用样式名称查找
e8 = browser.find_element(By.CLASS_NAME, "s_ipt")
print("e8", e8)
相关推荐
databook4 分钟前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao3 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099673 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing3 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
上海云盾-小余4 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
赶紧写完去睡觉4 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda
迷途呀4 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
鱼毓屿御4 小时前
复习总结:把之前的所有 prompt 套路封装成可切换模板的 ask 函数
python
你驴我5 小时前
WhatsApp 多账号下消息已读回执的实时聚合与推送实践
后端·python
AC赳赳老秦7 小时前
OpenClaw 采集任务日志审计:全程记录采集行为,满足合规溯源与企业审计要求
java·大数据·python·数据挖掘·数据分析·php·openclaw