Selenium自动化测试实战:手把手教你玩转网页测试!

(五)Selenium自动化测试实战—PO模式 selenium自动化测试实战,快速上手自动化测试 阅读详情

最近在给公司做电商系统升级时,我深刻体会到自动化测试的重要性!每次手动点点点测试购物车功能,不仅效率低到想哭(关键手真的会抽筋啊喂),还容易漏测关键路径。今天咱们就来聊聊如何用Selenium这个神器,让测试效率原地起飞!

🚀 环境搭建的三大坑(血泪教训!)

刚开始用Selenium的朋友,90%都会栽在环境配置上!别问我怎么知道的(说多了都是泪)…

1. 安装库的正确姿势

# Python用户看这里
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

# Java选手别慌
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.10.0</version>
</dependency>

注意版本号要写死!我上次用latest差点搞崩整个项目(版本冲突太可怕了)!

2. 浏览器驱动的玄学问题

下载ChromeDriver时一定要看准版本号!这里教大家个绝招:

  1. 浏览器地址栏输入chrome://version/
  2. 记下显示的版本号前三位(比如115.0.5790.110)
  3. 到ChromeDriver官网找对应版本

(超级重要)驱动文件记得放在这三处之一:

  • 系统PATH包含的目录
  • Python的Scripts目录
  • 项目根目录下新建drivers文件夹

3. 验证安装是否成功

来段5行代码快速验证:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
print(driver.title)  # 应该输出"百度一下"

如果报WebDriverException,八成是驱动路径没配对!

🔥 实战:电商登录测试全流程

咱们以某电商平台登录功能为例,手把手写测试脚本。准备好瓜子饮料,发车啦!

元素定位的十八般武艺

# 传统ID定位(最稳!)
username = driver.find_element(By.ID, "username")

# XPath定位大法(复杂结构救星)
search_box = driver.find_element(By.XPATH, '//input[@class="search-input"]')

# CSS选择器新玩法
add_cart_btn = driver.find_element(By.CSS_SELECTOR, ".product-list > li:first-child button")

实测发现:优先用ID > CSS > XPath。上次用XPath定位动态元素,差点被绕晕在/div[3]/div[2]/span这种路径里…

登录测试完整案例

def test_login():
    driver = webdriver.Chrome()
    try:
        driver.get("https://mall.example.com/login")
        
        # 显式等待策略(比隐式等待靠谱多了!)
        wait = WebDriverWait(driver, 10)
        username = wait.until(EC.presence_of_element_located((By.ID, "username")))
        
        username.send_keys("test_user")
        driver.find_element(By.ID, "password").send_keys("P@ssw0rd!")
        driver.find_element(By.CLASS_NAME, "login-btn").click()
        
        # 验证登录成功
        welcome_text = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[contains(text(),'欢迎回来')]")))
        assert "test_user" in welcome_text.text
    finally:
        driver.quit()

遇到过最坑的情况:登录弹窗突然变成新窗口,差点没定位到元素!后来加了窗口切换代码才解决。

💡 高级技巧:让脚本更健壮

1. 智能等待策略

三种等待方式对比:

类型优点缺点
强制等待简单粗暴影响执行效率
隐式等待全局设置不灵活,容易意外等待
显式等待精准控制代码稍复杂

推荐组合拳:

driver.implicitly_wait(5)  # 兜底等待
wait = WebDriverWait(driver, 10, poll_frequency=0.5)

2. 异常处理黑科技

from selenium.common.exceptions import NoSuchElementException

def safe_click(element):
    try:
        element.click()
    except ElementClickInterceptedException:
        driver.execute_script("arguments[0].scrollIntoView();", element)
        element.click()

上次遇到浮动广告遮挡按钮,就是这个方法救了我!

3. Page Object模式(PO模式)

把页面元素和操作封装成类:

class LoginPage:
    def __init__(self, driver):
        self.driver = driver
        self.username = (By.ID, "username")
        self.password = (By.ID, "password")
    
    def login(self, user, pwd):
        self.driver.find_element(*self.username).send_keys(user)
        self.driver.find_element(*self.password).send_keys(pwd)
        self.driver.find_element(By.CLASS_NAME, "login-btn").click()

用PO模式后,维护脚本效率提升了300%!再也不用满世界找元素定位了。

🚨 常见问题急救包

Q1:元素明明存在却找不到?

  • 检查iframe嵌套
  • 确认元素在当前视窗(用scrollIntoView())
  • 查看是否有Shadow DOM(需要用JavaScript穿透)

Q2:如何处理随机弹窗?

try:
    alert = driver.switch_to.alert
    alert.dismiss()
except NoAlertPresentException:
    pass

Q3:下拉框选择技巧

from selenium.webdriver.support.select import Select

select = Select(driver.find_element(By.ID, "city"))
select.select_by_visible_text("北京")
select.select_by_value("bj")

🌟 升级路线图

  1. 整合Pytest做测试管理
  2. 使用Allure生成炫酷报告
  3. 搭建Selenium Grid分布式测试
  4. 结合Appium做移动端测试
  5. 接入CI/CD流水线

最近在尝试用Selenium录制操作生成测试脚本,发现有些工具生成的代码冗余太多,还是手写的更灵活。不过对新手来说,录制功能确实是个不错的入门方式。

最后说两句

自动化测试不是银弹!千万别为了自动化而自动化——我见过最离谱的案例,有人用Selenium测计算器功能(直接调接口不香吗?)。建议从核心业务流程开始,逐步扩大覆盖范围。

记住:好的测试脚本应该像乐高积木,可以灵活组合复用。刚开始可能觉得写脚本费时间,但当你第10次执行回归测试时,就会感谢当初的自己!

Python自动化测试:Selenium实战指南 今天咱们聊聊Python自动化测试,特别是Selenium这个强大的工具!Selenium能让咱们用Python写脚本来模拟用户在浏览器上的操作,比如点击、输入、滚动等等。这对于测试网页应用可是超级有用的哦! 阅读详情

相关推荐

使用Selenium进行网页自动化测试

例如,你可以打开Selenium IDE,然后在浏览器中进行一系列操作,如登录网站、填写表单等,Selenium IDE会自动记录这些操作,并生成相应的测试脚本代码。不过它的功能相对有限,对于复杂的测试逻辑和多浏览器兼容性测试等场景,通常需要使用Selenium WebDriver。通过Selenium Grid的中心枢纽(Hub),可以将测试用例分发到各个节点上执行,从而提高测试效率,实现大规模的自动化测试。例如,如果你使用的是Chrome浏览器,就需要下载ChromeDriver。

silver687的博客 1458

python&selenium自动化测试实战项目(完整、全面)

之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习。(注:项目是针对我们公司内部系统的测试,只能内部网络访问,外部网络无法访问)

自动化测试技术栈 1万+

Selenium + Playwright 联手打造高效网页自动化测试机器人

在现代前端开发中,网页自动化测试至关重要。Selenium 是经典自动化测试工具,兼容性好,生态成熟;Playwright 是新兴利器,支持多浏览器、多语言,性能优异,支持现代网页特性。本文将结合两者优势,演示如何搭建一个高效、稳定的网页自动化测试机器人。工具优势Selenium生态成熟,兼容性极佳Playwright支持多浏览器,现代网页特性好联合使用结合各自优点,适用复杂场景。

2501_92823525的博客 1047

Selenium 自动化测试最佳实践

接到测试需求后,不要一开始就陷入按钮、字段、下拉框等页面元素怎么操作的技术细节当中,而要站在最终用户的角度去分析这个测试需求的交互逻辑和依赖关系,从而将其拆解为一个个相对独立的测试用例。而对于每一个测试用例,并不是每一步都必须使用 Selenium 去自动化实现,而是要根据实际情况将关键的部分自动化,其它非关键的部分可以通过植入数据或调用 API 来实现。综上,本文介绍了构建一个大型测试项目时分析需求的基本指导思想、编排测试代码的实践策略以及使用定位器的推荐顺序。下面看一下定位器使用相关的最佳实践。

MXB_1220的博客 2357

小白学 Python 爬虫:自动化测试框架 Selenium 从入门到实战

引言 前面连续几篇爬虫实战不知道各位同学玩的怎么样,小编是要继续更新了,本篇我们来介绍一个前面已将安装过的工具:Selenium ,如果说是叫爬虫工具其实并不合适,在业界很多时候是拿来做自动化测试的,所以本篇的标题也就叫成了自动化测试框架。 至于为什么叫这个名字我们就不去深究了,老外起名字的想象力还是相当可以的。 它可以通过驱动程序驱动浏览器执行特定的动作,这个特性对我们爬取由 J...

Python学习Q群696455390 2241

从Blender舞步到夜空画卷:基于Pix飞控的无人机编队灯光秀全链路开发实践

本文详细介绍了基于Pixhawk飞控的无人机编队灯光秀全链路开发实践。从Blender三维动画设计、QGroundControl地面站二次开发与MAVLink通信桥接,到PX4飞控的OFFBOARD模式路径控制与LED灯光驱动实现,最后通过Gazebo仿真验证并完成真机组装与首飞。文章为无人机爱好者提供了一套完整的、从创意设计到夜空执行的开源解决方案,重点阐述了多机同步与灯光控制的核心技术挑战与应对策略。

zeta9的博客 585

selenium自动化测试实战

Selenium是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。

apex_eixl的博客 1101

用LT1166+MOS管打造实验室级恒流源:闭环反馈与推挽驱动的深度调优

本文详细介绍了基于LT1166电流模式控制器与MOS管推挽架构的实验室级恒流源设计方法。通过闭环反馈调优和动态响应优化,实现带宽达100kHz、纹波低于0.1%的高性能恒流输出,适用于精密仪器校准和半导体测试等场景。重点解析了系统架构设计、MOS管选型策略以及频率响应测试等关键技术要点。

weixin_29290379的博客 206

使用Selenium进行自动化测试

对于很多刚入门的测试新手来说,大家都将自动化测试作为自己职业发展的一个主要阶段。可是,在成为一名合格的自动化测试工程师之前,我们不仅要掌握相应的理论知识,还要进行大量的实践,积累足够的经验,以便快速适应工作需求。 今天,笔者就想给大家介绍一些,关于使用Selenium进行自动化测试的实战案例经验。希望对测试新手们有所帮助。

2301_77645834的博客 796

Circos在Windows下的安装教程

这里写自定义目录标题Circos简介安装Perl 的安装Circos安装安装及解压安装Modules测试用例官方文档 Circos简介 (来源官网:http://circos.ca/software/readme/ O.INTRODUCTION部分) Circos is a program for the generation of publication-quality, circularly composited renditions of genomic data and related annot

qq_42318911的博客 1661

常见图像加密性能评价指标(详解加python实现)

前言 本文目的 介绍一些常见的用于图像加密的评价指标并予以代码实现,方便以后做实验时参考查阅。 图像加密领域所有常见的安全分析技术汇总如下图。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7N8tbKNx-1618308894314)(%E5%B8%B8%E8%A7%81%E5%9B%BE%E5%83%8F%E5%8A%A0%E5%AF%86%E6%80%A7%E8%83%BD%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87/1-s2.0-S0165

z2bns的博客 3万+

10分钟玩转Python+Selenium自动化测试,教你快速入门!

Selenium是一个Web自动化测试软件,正如Selenium官网所言:Selenium主要是为了测试目的而进行自动化的Web应用程序,但是当然并不限于此,一些基于Web的无聊的管理任务也可以使用Selenium进行自动化。不要一提代码就恐怖哦(很多测试工程师的通病),其实python与selenium就是一个【纸老虎】,要勇于面对,勇于挑战哦,要不自己没有技术上的竞争力,谁来给你涨薪呢?在selenium的学习中,更需要掌握webdriver的api,探索selenium的更多特性。

Hacker_Nightrain的博客 1492

使用单片机开发PWM的案例&相关项目源码

该项目使用STM32单片机生成PWM信号,通过改变PWM的占空比来控制连接在PWM输出引脚(如PA0)上的LED的亮度。在主循环中,通过改变比较值,PWM信号的占空比在0%到100%之间变化,从而实现LED亮度的渐变效果。这个项目是一个基础的PWM控制示例,通过学习和实践这个项目,可以掌握PWM的基本原理和使用方法,并为进一步开发和应用打下良好的基础。该项目实现了使用STM32单片机产生PWM信号,并通过改变PWM的占空比来控制LED的亮度。配置PWM输出引脚(如PA0),确保其模式为PWM输出。

清风明月 643

【Python】selenium自动化测试网页的基础操作

本文介绍了selenium自动化测试网页的基础操作,包括浏览器加载,元素定位,元素操作,窗口跳转,页面等待,无头浏览器等内容。Selenium 是一个功能强大且灵活的工具,适用于 Web 应用程序的自动化测试。然而,它也有一些局限性,如速度慢和处理动态内容的复杂性。选择是否使用 Selenium 需要根据项目的需求和环境来决定。

2201_75577630的博客 1908

LIS2DH三轴加速度传感器原理图设计,已量产(加速度传感器)

最近在做一款可穿戴设备原型时,选了 LIS2DH 这款加速度计 —— 比起之前常用的 ADXL345,它在低功耗和稳定性上的优化刚好戳中了可穿戴设备 “续航 + 可靠” 的核心需求。下面结合这次画的原理图,聊聊这个小模块的硬件设计细节。

不脱发的程序猿 389

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1475

Python Selenium 库:高级自动化测试与网页交互

Selenium 是一个用于自动化测试网页的工具集,它支持多种浏览器,包括 Chrome、Firefox、Safari 等。Selenium 可以模拟用户在浏览器中的操作,如点击、输入、提交表单等,从而实现自动化测试和网页交互。在 Python 中,可以使用pipPython 的 Selenium 库是一个强大的工具,用于自动化测试网页和与网页进行交互。通过掌握 Selenium 的高级用法,可以实现更复杂的网页操作和任务。

liuhailong0511的博客 1847

UE5、CesiumForUnreal实现加载GeoJson绘制多面(MultiPolygon)功能(支持点选高亮)

UE5、CesiumForUnreal实现加载GeoJson实现多面(MultiPolygon)的绘制功能,并且支持点选高亮和属性查询。

专注GIS开发 4629

【Python爬虫框架】Selenium库入门:如何用Python实现网页自动化测试?

通过本文的介绍,相信你已经掌握了 Selenium 库的基本知识,包括自动化测试、浏览器驱动、页面交互等。现在,你可以用 Python + Selenium 轻松搞定网页自动化测试啦!对于这篇文章,你有什么想法或疑问吗?欢迎在评论区留言讨论!期待 ~【保证100%免费】

nhb687095的博客 1345

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

网页自动化测试和爬虫:Selenium库入门与进阶

Selenium 是一个浏览器自动化工具,可以模拟用户操作,如点击按钮、填入表单、滚动页面等。它支持多种浏览器(如 Chrome、Firefox 等),使其成为自动化测试和动态页面数据采集的强力工具。Selenium 是一个功能全面的网页自动化测试工具,既可用于网页功能的自动化测试,又能在网页爬虫中抓取动态数据。掌握了以上基本与进阶技巧,相信你已经可以用 Selenium 轻松应对各种网页交互场景。在实际项目中,通过合理地使用等待和浏览器选项,Selenium 可以成为非常高效、稳定的数据获取和测试工具。

萧鼎的博客 2594

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python Selenium实现自动化测试及Chrome驱动使用

Selenium是一个自动化测试工具,支持多种浏览器,包括Chrome、Firefox、Edge等。它可以模拟用户在浏览器中的操作,如点击按钮、填写表单、提交表单等,从而实现自动化测试的功能。Selenium提供了多种编程语言的接口,包括Python、Java、C#等,使得开发者可以使用自己熟悉的编程语言来编写自动化测试脚本。本文介绍了如何使用Python Selenium库来实现自动化测试,并详细讲解了Chrome驱动的使用方法。

涛哥聊Python 1990

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《基于Selenium的网页聊天室自动化测试实战报告》

目标系统:基于WebSocket的实时聊天室核心功能:用户注册/登录、会话框发送信息、好友列表、信息发送技术栈:html + Springboot + MySQL数据库。

m0_64056556的博客 1410

【手把手教你实现 自动化测试 && selenium 自动化测试工具的使用】

自动化测试-常见的函数使用&& selenium 自动化工具的使用

2301_76249062的博客 1074

Python Selenium3 自动化测试实战:构建高效测试项目

随着软件规模和复杂性的增加,手动测试变得越来越繁琐且容易出错。自动化测试通过脚本化测试用例,能够更迅速、一致地验证软件的功能和性能。Selenium 是一款强大的自动化测试工具,而 Python 语言则因其简洁性和易读性而成为自动化测试的首选之一。通过以上实例,我们深入了解了如何使用 Python 和 Selenium 3 构建自动化测试项目。从环境准备到测试框架整合,每一步都是构建高效测试项目的关键。自动化测试不仅提高了测试效率,也确保了软件质量和稳定性。

努力是为了站在万人之中,成为别人的光 1万+
下一篇: Java基础知识大全(必看经典)从入门到放弃的防坑指南!!!
「已注销」
博客等级 码龄2年 148粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值