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

selenium对每种前端控件的操作,python举例

以下通过豆包整理,仅做记录

Selenium 对前端常用控件的操作方式各有特点,以下是针对不同类型控件的典型操作方法(以 Python 为例):

1. 输入类控件

<input>(文本 / 密码 / 数字等输入框)
  • 操作:输入文本、清空内容、获取值

python

运行

# 定位元素
input_element = driver.find_element(By.ID, "username")# 输入文本
input_element.send_keys("test_user")# 清空内容
input_element.clear()# 获取当前值
value = input_element.get_attribute("value")
<textarea>(多行文本框)
  • 操作:输入多行文本、清空、获取内容

python

运行

textarea = driver.find_element(By.NAME, "description")# 输入多行文本
textarea.send_keys("第一行文本\n第二行文本")# 清空
textarea.clear()# 获取内容
content = textarea.get_attribute("value")

2. 选择类控件

<select> + <option>(下拉选择框)
  • 操作:选择选项(通过索引、可见文本、值)

python

运行

from selenium.webdriver.support.ui import Selectselect_element = Select(driver.find_element(By.ID, "city"))# 通过索引选择(索引从0开始)
select_element.select_by_index(2)# 通过可见文本选择
select_element.select_by_visible_text("北京")# 通过option的value属性选择
select_element.select_by_value("shanghai")# 取消所有选择(仅适用于multiple=True的下拉框)
select_element.deselect_all()# 获取所有选中的选项
selected_options = select_element.all_selected_options
<input type="checkbox">(复选框)
  • 操作:勾选、取消勾选、判断是否选中

python

运行

checkbox = driver.find_element(By.NAME, "agree")# 勾选(如果未选中)
if not checkbox.is_selected():checkbox.click()# 取消勾选(如果已选中)
if checkbox.is_selected():checkbox.click()# 判断是否选中
is_checked = checkbox.is_selected()
<input type="radio">(单选框)
  • 操作:选择指定选项

python

运行

# 选择value为"male"的单选框
radio_male = driver.find_element(By.CSS_SELECTOR, "input[value='male']")
radio_male.click()

3. 按钮类控件

<button> 或 <input type="submit">
  • 操作:点击按钮

python

运行

# 定位提交按钮并点击
submit_btn = driver.find_element(By.ID, "submit-btn")
submit_btn.click()# 有时需要处理点击后页面加载,可配合等待
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 等待按钮可点击后再点击
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "submit-btn"))
).click()

4. 媒体类控件

<img>(图片)
  • 操作:获取图片信息、点击图片(如果有链接)

python

运行

image = driver.find_element(By.CSS_SELECTOR, "img.logo")# 获取图片URL
image_url = image.get_attribute("src")# 获取替代文本
alt_text = image.get_attribute("alt")# 点击图片(如果图片包裹在<a>标签中或有点击事件)
image.click()
<video>(视频)
  • 操作:播放、暂停(通过 JavaScript 执行)

python

运行

video = driver.find_element(By.TAG_NAME, "video")# 播放视频
driver.execute_script("arguments[0].play()", video)# 暂停视频
driver.execute_script("arguments[0].pause()", video)# 获取视频时长
duration = driver.execute_script("return arguments[0].duration", video)

5. 容器与链接类

<div>/<span>(容器)
  • 操作:获取文本、点击(如果有交互)

python

运行

div_element = driver.find_element(By.CLASS_NAME, "info-box")# 获取文本内容
text = div_element.text# 点击容器(如果绑定了点击事件)
div_element.click()
<a>(超链接)
  • 操作:点击跳转、获取链接地址

python

运行

link = driver.find_element(By.LINK_TEXT, "帮助中心")# 点击链接
link.click()# 获取链接地址
href = link.get_attribute("href")

6. 表单类

<form>(表单)
  • 操作:提交表单、重置表单

python

运行

form = driver.find_element(By.ID, "login-form")# 提交表单(等价于点击提交按钮)
form.submit()# 重置表单(清空输入内容)
form.reset()

7. 文件上传控件

<input type="file">
  • 操作:上传本地文件(需传入文件绝对路径)

python

运行

file_input = driver.find_element(By.ID, "avatar-upload")# 上传文件(直接传入本地文件路径)
file_input.send_keys("/Users/test/avatar.jpg")

关键注意事项

  1. 元素交互前需确保可见 / 可点击:使用显式等待(WebDriverWait)避免因元素未加载导致的错误。
  2. 处理动态元素:若元素属性动态变化,优先使用稳定的定位方式(如 XPath 文本定位、层级定位)。
  3. 特殊控件处理:对于复杂控件(如日期选择器、自定义下拉框),可通过直接设置属性或执行 JavaScript 操作。

通过上述方法,可覆盖 Selenium 对绝大多数前端控件的基本操作,结合具体场景灵活组合即可实现复杂自动化流程。

http://www.dtcms.com/a/482507.html

相关文章:

  • php网站打开慢网站设计需要考虑的基本原则
  • oracle数据库 ZHS16GBK 数据库 VARCHAR2字段无法存储生僻字解决方案、如“䶮”生僻字、oracle utl_raw函数解释
  • Python - 100天从新手到大师:第五十五天使用缓存
  • K8S(八)—— Kubernetes 集群调度全面解析:从组件协作到实战(含亲和性、污点容忍与故障排查)
  • 基于MATLAB的遗传算法优化支持向量机实现
  • k8s(四)Kubernetes 集群调度
  • 如何从 iPhone 中导出视频
  • 关于网站开发的开题报告郑州制作平台网站
  • 吐鲁番做网站godaddy服务器做网站
  • 特色专业建设验收网站如何做网络营销方案策划
  • iBizModel 日历部件(PSSYSCALENDAR)模型体系详解
  • Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?
  • 一个网站上能不能放两个域名 两个备案号沧县做网站价格
  • GPIO 也是一个接口,还有 QEMU GPIODEV 和 GUSE
  • 网站制作公司电话山东专业网站建设公司
  • 第 8 篇:更广阔的世界 - 加载 3D 模型
  • C/C++---_access 和 access 函数 文件/目录状态判断
  • Linux内存管理-缓存系统中的Major和Minor详解
  • 8 读写分离-实战
  • 手机网站建设西安检查网站是否做301
  • 网站Favicon图标:小图标背后的大作用 引言
  • 什么是GEO生成式引擎优化?GEO科普:定义、原理与应用指南
  • 使用 Gensim 进行主题建模(LDA)与词向量训练(Word2Vec)的完整指南
  • 诺奖解码外周免疫耐受,泰克生物以抗体工具链加速机制研究突破
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-07 广播效果资产标签
  • 南阳专业做网站抖音代运营平台
  • 网站公司怎么做的好天津海外seo
  • 二级网站建设方案模板做ppt的网站叫什么名字
  • Java优选算法——位运算
  • Linux编辑器vim