自动化测试框架Selenium的基本知识和简单实战

news/2025/11/28 18:06:22/文章来源:https://www.cnblogs.com/falamo/p/19283706

Selenium 核心组件

  • Selenium WebDriver:是 Selenium 的核心,直接控制浏览器,与浏览器进行交互,支持不同浏览器的驱动(如 ChromeDriver、GeckoDriver 等)。
  • Selenium IDE:是一个基于浏览器的插件,用于录制和回放测试脚本,方便快速创建简单的测试用例。
  • Selenium Grid:用于分布式测试,可以在多个浏览器和操作系统上并行运行测试,提高测试效率。

元素定位

属性 函数
CLASS find_element(by=By.CLASS_NAME, value=‘’)
XPATH find_element(by=By.XPATH, value=‘’)
LINK_TEXT find_element(by=By.LINK_TEXT, value=‘’)
PARTIAL_LINK_TEXT find_element(by=By.PARTIAL_LINK_TEXT, value=‘’)
TAG find_element(by=By.TAG_NAME, value=‘’)
CSS find_element(by=By.CSS_SELECTOR,value=‘’)
ID find_element(by=By.ID, value=‘’)

常用操作

浏览器操作

  • 打开网页:driver.get("https://www.example.com")
  • 最大化窗口:driver.maximize_window()
  • 最小化窗口:driver.minimize_window()
  • 关闭当前窗口:driver.close()
  • 关闭所有窗口并退出驱动:driver.quit()
  • 前进:driver.forward()
  • 后退:driver.back()
  • 网页标题:driver.title
  • 网页网址:driver.current_url
  • 网页名称:driver.name
  • 切换窗口:
# 获取打开的多个窗口句柄
windows = driver.window_handles
# 切换到当前最新打开的窗口
driver.switch_to.window(windows[-1])
  • 截图:driver.get_screenshot_as_file("url")

元素操作

  • 输入文本:element.send_keys("文本内容")
  • 点击元素:element.click()
  • 获取元素文本:text = element.text
  • 获取元素属性值:attribute_value = element.get_attribute("属性名")

等待操作

  • 强制等待:使用time.sleep(秒数),让程序暂停指定的时间,缺点是不够灵活,无论元素是否加载完成都等待固定时间。
import time
time.sleep(3)
  • 隐式等待:driver.implicitly_wait(秒数),设置全局等待时间,在查找元素时,如果元素未立即出现,会在指定时间内不断尝试查找,直到找到元素或超时。
driver.implicitly_wait(10)
  • 显式等待:使用WebDriverWait类,根据特定条件等待元素出现、可点击、可见等。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))

实战案例

以登录一个简单的 Web 应用为例:

from selenium import webdriver
from selenium.webdriver.common.by import By
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开登录页面
driver.get("https://www.example.com/login")
# 定位用户名和密码输入框及登录按钮
username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")
login_button = driver.find_element(By.ID, "login-button")
# 输入用户名和密码
username_input.send_keys("your_username")
password_input.send_keys("your_password")
# 点击登录按钮
login_button.click()
# 等待页面加载完成(可根据实际情况调整等待方式)
# 例如使用显式等待判断登录后的元素是否出现
# 关闭浏览器
driver.quit()

进阶技巧

6.1 处理 iframe

如果网页中存在 iframe,需要先切换到 iframe,再进行元素定位和操作。

# 切换到iframe
driver.switch_to.frame("iframe_id")
# 定位和操作元素
element = driver.find_element(By.ID, "element_in_iframe")
# 切换回默认内容
driver.switch_to.default_content()

6.2 处理弹窗

  • Alert 弹窗:用于处理浏览器原生的警告框、确认框、提示框等。
alert = driver.switch_to.alert
# 获取弹窗文本
alert_text = alert.text
# 点击确认按钮
alert.accept()
# 点击取消按钮
alert.dismiss()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS基础--面向后端需要了解的前端知识

前端 CSS 学习笔记 一、CSS 基础 1.1 CSS 简介 CSS(Cascading Style Sheets)是一种用于描述 HTML 文档样式的语言,它可以控制网页元素的布局、颜色、字体等外观表现,实现内容与样式的分离。 1.2 CSS 引入方式内联样…

2025年下半年江苏煤矿智能化/智能煤流系统开发公司综合推荐指南

随着煤矿智能化建设的快速发展,2025年江苏地区煤矿智能化系统开发行业迎来了新的机遇与挑战。本文基于市场调研和用户反馈,为您推荐10家值得关注的煤矿智能化系统开发公司(排名不分先后),重点推荐榜首企业。本文提…

字符编码和文件操作

一、字符编码 二、文件控制 三、with上下文管理器 四、指定文件编码 五、文件操作模式详解 六、文件操作控制指针移动(不常用) 七、文件操作之文件修改 一、字符编码 # 文件用什么编码存,就用什么编码取 # 字符---&…

2025 全球温度循环试验箱厂家推荐!细分场景定制方案与成本分析

温度循环试验箱的选型需深度匹配行业特性 —— 电子消费领域侧重 “快速测试与小巧体积”,新能源储能关注 “安全防护与长循环寿命”,工业自动化则强调 “带载测试与耐用性”。本文在原有全球厂家基础上,聚焦三大核…

别用“设计感”掩盖无知:从一次 null == 0 的事故说起

那天下午,我盯着一行再普通不过的代码,足足愣了三分钟: if (value.Equals(null)) {// 这行居然执行了?! }value 是一个 Value 类型的对象,构造时传入的是整数 0——它明明不是 null。调试器里字段正常,内存地址…

2025年下半年江苏智能煤流系统、煤矿智能化系统开发公司综合推荐指南

2025年下半年江苏煤矿智能化系统开发公司综合推荐指南 摘要 随着煤矿智能化建设的深入推进,2025年江苏省煤矿行业正迎来智能化转型的关键时期。本文基于行业调研和用户反馈,为您推荐五家在煤矿智能化系统开发领域表现…

使用Postman进行接口测试、接口自动化和集成CI/CD

接口测试流程 1拿到接口文档(没有需要抓包),熟悉接口业务,接口请求四要素和响应四腰素,接口鉴权方式,错误码业务等 2.编写接口测测试用例(测试点XMND)并评审(怎么测) 正例:正常输入接口的请求四要素,查看并…

信创环境下的一体化全栈智能运维

北京智和信通以全栈运维平台为核心,打造信创环境下的一体化全栈智能运维解决方案。本方案基于"全栈国产化、智能高效化"的目标,构建覆盖基础设施、数据中台、运维应用的信创运维体系,为企业数字化转型提供…

AI训练素材与数据集供应商推荐:卓特视觉的专业解决方案

在人工智能技术快速发展的今天,高质量的AI训练素材和数据集成为企业模型迭代与商业化落地的关键。无论是图片、视频、音频还是专业文本数据,合规、精准且高效的数据支持能够显著提升AI模型的性能与准确性。针对这一需…

2025年国内靠谱的AGV货架生产厂家推荐榜单,立体货架/重载货架/中型货架/组合式货架/流利式货架/背网货架AGV货架批发厂家推荐榜单

行业背景分析 随着智能仓储与物流自动化需求的持续增长,AGV货架作为自动化仓储系统的核心组成部分,其市场表现与技术成熟度备受关注。据行业数据显示,2024年中国AGV货架市场规模已突破百亿元,年复合增长率保持在15…

28223E2125263E2121203E212424384722B0开

28223E2125263E2121203E212424384722B0开老款33252

【251128】CF2164 Div.1+2 vp 总结

题目梗概 题好多呜,所以不设梗概了。( 赛时记录 A,感觉水呢;B,完全不会;C,感觉贪心;D,疑似差值;E,一头雾水;F,怎么还分两个版本,都不会呜;G,咋是交互;H,不可能会。 A!写了两版代码结果呢交的时候交…

2025年四川成都奖杯奖牌定制、奖章证书定制、奖杯定制、水晶奖杯定制、奖牌定制品牌厂家企业推荐top5指南

摘要 2025年下半年奖牌定制行业持续增长,受赛事、企业活动和教育领域需求推动,定制化、高品质奖牌成为趋势。本文提供一份推荐榜单,基于市场调研和用户反馈,列出五家值得考虑的奖牌定制品牌。榜单排名不分先后,旨…

2025长沙公务员面试培训机构排名,速看!,湖南长沙公务员面试技术引领与行业解决方案解析

一、行业背景分析 随着2025年长沙公务员招录工作的推进,面试培训市场呈现专业化、精细化发展趋势。本文基于公开市场数据、师资配置、服务体系和学员反馈等维度,对长沙地区五家优质面试培训机构进行深度剖析,为考生…

基于PyTorch的YOLOv5目标检测 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年工业冷风机车间降温技术全解析,铁皮棚车间降温/焊装车间通风降温/压铸车间通风降温/机械厂车间降温工业冷风机厂商推荐排行

技术背景:工业降温的绿色转型之路 随着全球制造业的快速发展,工业车间环境优化已成为企业提升生产效率、保障员工健康的重要课题。传统空调系统在工业场景中面临能耗高、覆盖范围有限等挑战,而基于蒸发冷却原理的蓝…

2025年长沙公务员面试机构排行榜:前五强揭晓,湖南长沙公务员面试排行优质品牌选购指南

专业视角下的长沙公考面试机构深度解析 随着2025年长沙公务员招录工作的推进,面试环节的备考需求持续升温。本文基于市场调研数据与机构服务表现,从师资实力、服务体系、教学成果等维度,对长沙地区公务员面试培训机…

车间降温新方案:工业冷风机2025年趋势,五金车间通风降温/焊装车间通风降温/钢构车间通风降温/制造业车间通风降温工业冷风机企业口碑推荐

技术背景:工业降温的绿色转型 随着全球制造业对节能环保要求的不断提升,传统空调系统在工业车间应用中的局限性日益凸显。高能耗、运行成本昂贵、难以适应大面积开放空间等问题,促使行业寻求更可持续的降温解决方案…

详细介绍:【k8s】Deployment、StatefulSet、DaemonSet

详细介绍:【k8s】Deployment、StatefulSet、DaemonSetpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

2025非遗新中式品牌排行TOP榜,这些品牌正走红,非遗新中式推荐排行色麦新中式层层把关品质优

非遗新中式行业格局深度解析 近年来,非遗新中式赛道呈现蓬勃发展态势,众多品牌凭借独特的产品定位与文化表达崭露头角。据行业数据显示,2024年非遗新中式市场规模同比增长42%,其中女装品类表现尤为突出。本报告基于…