当前位置: 首页 > news >正文

selenium元素获取

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

driver = webdriver.Chrome()

driver.maximize_window()#最大化窗口
#隐式等待
driver.implicitly_wait(10)

#打开网页
driver.get("https://www.zhipin.com/beijing/?ka=city-sites-101010100")

#定位到搜索框,然后输入内容
# driver.find_element(By.CSS_SELECTOR,'input[name="query"]').send_keys("测试工程师")
driver.find_element(By.CSS_SELECTOR,'.ipt-search').send_keys("测试工程师")

driver.find_element(By.XPATH, '//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button').click()


"""
id
如果某个元素的有id属性,那么如果id属性的值唯一,则可以利用该属性的值定位
如果id属性的值是一串无序的字母或者数字,则不能使用,有可能是动态id
driver.find_element(By.ID,"id属性的值")


name
根据name的属性值来定位,但是如果name属性的值在当前页面不唯一,则是无法定位的
driver.find_element(By.NAME,"name值")

class name
class 属性的值,不唯一的可能性很大
driver.find_element(By.CLASS_NAME,'btn btn-search')

tag name(通过标签名本身选择,一般无法使用,不推荐)
driver.find_element(By.TAG_NAME,"标签名")

link text(一般不要使用)

partial link text(一般不要使用)

xpath

CSS_SELECTOR
例如driver.find_element(By.CSS_SELECTOR,'input[name="query"]')
根据<input name="query">而来
driver.find_element(By.CSS_SELECTOR,'.ipt-search')根据<input class='ipt-search'>而来
"""

补充知识:

1. CSS_SELECTOR 定位
CSS Selector 是一种通过 CSS 样式规则来选取 HTML 元素的方法。它基于元素的标签、类名、ID、属性等来进行定位。

常见的 CSS_SELECTOR 语法:
tag:选择标签名的元素,例如 div。
.class_name:选择具有指定类名的元素。
#id:选择具有指定 ID 的元素。
[attribute=value]:选择具有特定属性值的元素。
示例:使用 CSS_SELECTOR 定位
假设我们有以下 HTML 代码:
<div id="container">
    <button class="btn" id="submitBtn">Submit</button>
    <a href="https://example.com" class="link">Click Me</a>
</div>

使用 CSS_SELECTOR 定位按钮(button 标签,id=“submitBtn”):

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

# 启动浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get('https://example.com')

# 通过 CSS_SELECTOR 定位按钮
button = driver.find_element(By.CSS_SELECTOR, '#submitBtn')
button.click()  # 点击按钮

# 关闭浏览器
driver.quit()

使用 CSS_SELECTOR 定位链接(a 标签,class=“link”):

link = driver.find_element(By.CSS_SELECTOR, 'a.link')
link.click()  # 点击链接

常见的 CSS_SELECTOR 示例:
通过类名:div.class_name
通过 ID:#element_id
通过属性:input[type="text"]
通过后代选择器:div > button(选择 div 中的 button 元素)
通过伪类:button:hover(选择被悬浮的按钮)
2. XPath 定位
XPath 是一种在 XML 文档中查找信息的语言,也可以用来定位 HTML 元素。它允许通过元素的路径、标签、属性、文本等来精确查找元素。

常见的 XPath 语法:
/tag:选择根元素下的 tag 元素。
//tag:选择页面中所有的 tag 元素。
//tag[@attribute='value']:选择具有指定属性的 tag 元素。
//*[text()='text_value']:根据元素的文本内容查找。
//tag[contains(@attribute, 'value')]:根据属性包含的值进行匹配。
示例:使用 XPath 定位
假设我们有以下 HTML 代码:
<div id="container">
    <button class="btn" id="submitBtn">Submit</button>
    <a href="https://example.com" class="link">Click Me</a>
</div>

使用 XPath 定位按钮(button 标签,id=“submitBtn”):

button = driver.find_element(By.XPATH, '//*[@id="submitBtn"]')
button.click()  # 点击按钮

使用 XPath 定位链接(a 标签,class=“link”):

link = driver.find_element(By.XPATH, "//a[@class='link']")
link.click()  # 点击链接
常见的 XPath 示例:
通过元素 ID://*[@id='element_id']
通过类名://*[contains(@class, 'class_name')]
通过文本://*[text()='Click Me']
通过属性://input[@type='text']
使用 contains://*[contains(@href, 'example')](查找包含特定文本的链接)
http://www.dtcms.com/a/127304.html

相关文章:

  • 【时时三省】Python 语言----正则表达式
  • 检测到目标URL存在http host头攻击漏洞
  • 北京市生成式人工智能大模型备案综合分析情况
  • 聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
  • GoLand 标红但程序可正常运行:由符号索引缓存失效引起的假报错问题
  • 1 深入理解 DevOps 与 CI/CD:概念、流程及优势
  • 数据分析之python处理常用复杂转置数据
  • typescript开发心得
  • org.apache.ibatis Test
  • Pytorch深度学习框架60天进阶学习计划 - 第40天:工业缺陷检测(二)
  • Dubbo(45)如何排查Dubbo的序列化问题?
  • django相关面试题
  • 设计模式:代理模式 - 控制访问与增强功能的艺术
  • AutoGen深度解析:从核心架构到多智能体协作的完整指南
  • 【图片识别改名工具】如何识别图片中文字内容,并根据文字对图片批量重命名批量改名,基于WPF和腾讯OCR的完整实现
  • 【SQL Server 2017】封闭网络下,数据调研所有数据表实战(提效400%)
  • Python 实现的运筹优化系统数学建模详解(0-1规划指派问题)
  • 【人工智能】引爆智能时代的大模型伦理挑战:DeepSeek 如何应对偏见与隐私问题
  • 量子代理签名:量子时代的数字授权革命
  • ubuntu22.04 进入不了系统设置
  • 基于FreeRTOS和LVGL的多功能低功耗智能手表(APP篇)
  • 鸿蒙案例---生肖抽卡
  • 24.0.2 双系统ubuntu 安装显卡驱动黑屏,系统启动界面键盘失灵
  • 跨站点请求伪造(CSRF)原理与Spring Security防护机制详解
  • 数据结构|排序算法(二)插入排序 希尔排序 冒泡排序
  • gerrit上面可以git fetch
  • P8697 [蓝桥杯 2019 国 C] 最长子序列
  • conda-pack打包环境到超算上。解决无法打包可编辑包
  • GIS开发笔记(3)win11环境中osgearth加载大体积全球高程数据(dem)
  • 以太网供电(PoE)交换机:为音频和视频系统赋能的多面利器