Selenium+Python可通过 元素定位→操作模拟→断言验证 三步实现Web自动化测试

一、环境搭建(5分钟完成)

1. 安装依赖

bash # 安装Selenium库 pip install selenium

下载浏览器驱动(需与浏览器版本匹配):

  • Chrome驱动:https://sites.google.com/chromium.org/driver/
  • 下载后放入Python安装目录或添加到系统环境变量。

2. 验证安装

python from selenium import webdriver # 启动Chrome浏览器 driver = webdriver.Chrome() # 打开百度首页 driver.get("https://www.baidu.com") # 关闭浏览器 driver.quit()

运行后若自动打开Chrome并访问百度,说明环境配置成功。

---

二、核心操作:模拟用户行为

1. 元素定位(8种常用方法)

方法

场景示例

代码示例

find_element_by_id

定位有id属性的元素(如搜索框)

driver.find_element_by_id("kw")

find_element_by_xpath

复杂页面定位(如动态加载元素)

driver.find_element_by_xpath("//input[@name='username']")

find_element_by_link_text

定位超链接文本

driver.find_element_by_link_text("登录")

2. 模拟用户操作

  • 输入文本send_keys()
python # 在百度搜索框输入“selenium” driver.find_element_by_id("kw").send_keys("selenium")
  • 点击按钮click()
python # 点击百度搜索按钮 driver.find_element_by_id("su").click()
  • 键盘操作(需导入Keys):
python from selenium.webdriver.common.keys import Keys # 输入后按回车键(替代点击按钮) driver.find_element_by_id("kw").send_keys(Keys.ENTER)
  • 鼠标悬停(需ActionChains):
python from selenium.webdriver.common.action_chains import ActionChains # 悬停到“设置”菜单 setting = driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(setting).perform()

---

三、实战案例:模拟电商网站登录

1. 测试用例

目标:自动输入用户名/密码,点击登录,验证是否跳转至首页。

前置条件:准备测试账号(testuser/testpwd123)。

2. 代码实现

python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 1. 启动浏览器并打开登录页 driver = webdriver.Chrome() driver.get("https://www.example.com/login") # 替换为实际登录页URL driver.maximize_window() # 最大化窗口 # 2. 输入账号密码(显式等待元素加载,避免time.sleep) WebDriverWait(driver, 10).until( EC.presence_of_element_located(("id", "username")) ).send_keys("test_user") driver.find_element_by_id("password").send_keys("test_pwd123") # 3. 点击登录按钮 driver.find_element_by_xpath("//button[@type='submit']").click() # 4. 验证登录结果(断言URL是否包含“home”) WebDriverWait(driver, 10).until( EC.url_contains("home") ) assert "home" in driver.current_url, "登录失败,未跳转至首页" # 5. 关闭浏览器 driver.quit()

---

四、提升效率:避免重复劳动

1. 显式等待(替代time.sleep)

python # 等待10秒,直到“首页欢迎语”出现 welcome_text = WebDriverWait(driver, 10).until( EC.presence_of_element_located(("id", "welcome")) ) assert "欢迎回来" in welcome_text.text

2. 封装成测试类(便于维护)

python import unittest class TestLogin(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_login_success(self): self.driver.get("https://www.example.com/login") # 登录逻辑... def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()

3. 容器化部署(确保环境一致性)

通过智优达Docker容器化部署指南,将Selenium测试环境打包为Docker镜像,避免“本地能跑,服务器跑不了”的问题:

dockerfile # Dockerfile示例 FROM python:3.9 RUN pip install selenium COPY . /app CMD ["python", "/app/test_login.py"]

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

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

相关文章

深度学习计算机毕设之基于卷神经网络python-CNN深度学习识别猫脸

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

MBA必备!10个降AI率工具高效推荐

MBA必备!10个降AI率工具高效推荐 AI降重工具:MBA论文的高效护航者 在当前学术研究日益依赖人工智能技术的背景下,MBA学生在撰写论文时常常面临一个共同难题——如何有效降低AIGC率、去除AI痕迹,同时又不破坏文章的逻辑性和专业性。…

深度学习计算机毕设之基于python-CNN卷积神经网络人工智能的柑橘成熟度识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

别再让 Cursor 只当编辑器了!4 步解锁 Claude 官方技能!

别再让 Cursor 只当编辑器了!4 步解锁 Claude 官方技能!

《source insight》添加对.s文件的支持

今天发现source insight 3.5中默认忽略.s文件,这里添加对.s文件的支持。

深度实践!提示工程架构师与Agentic AI环境监测深度

深度实践!提示工程架构师与Agentic AI环境监测深度 一、引言:环境监测的“痛点”与Agentic AI的“解药” 1.1 环境监测的现状困境 清晨打开手机,你看到“空气质量良”的提示,但楼下的雾霾却让你咳嗽不止——这不是科幻电影&#x…

【毕业设计】基于python-深度学习CNN-pytorch训练识别蝴蝶-蚂蚱等昆虫

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【毕业设计】基于python-CNN深度学习识别猫脸

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

3D建模中的提示工程实战:生成影视道具完整案例

3D建模中的提示工程实战:生成影视道具完整案例 一、引言:影视道具设计师的“效率瓶颈”与AI的救赎 1. 钩子:你是否经历过“道具设计的死循环”? 作为一名影视道具设计师,我曾无数次陷入这样的困境: 导演说“…

【课程设计/毕业设计】基于深度学习python-CNN卷积神经网络的柑橘成熟度识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【毕业设计】基于python-CNN卷积神经网络的柑橘成熟度识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

基于Python+Django网络爬虫的房屋信息采集系统的设计与实现 #计算机毕业设计 毕设 论文 开题报告

博主介绍 本人程序员一枚,从2017年从事开发行业到现在,我们可以从最初的java,ssm,jsp,发展到现在的spring boot vue框架,随着python的崛起,又融入了django、flask框架的web式开发,一步一步走到现在&#x…

Python毕设项目推荐-基于Python的淘宝月季销售预测数据可视化系统【附源码+文档,调试定制服务】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

09. 集成学习

一、集成学习集成学习通过某种策略组合多个个体学习器的预测结果来提高整体的预测能力。只包含同种类型的个体学习器的集成称为 同质集成。同质集成中的各个学习器亦称为 基学习器,相应的学习算法称为 基学习算法。包…

【课程设计/毕业设计】基于机器学习python-深度学习CNN-pytorch训练识别蝴蝶-蚂蚱等昆虫

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

AI智能体编写实战AutoGen篇(四)——会干活的导诊 Agent(Planner + Tools 实战)

AI智能体编写实战AutoGen篇(四)——会干活的导诊 Agent(Planner + Tools 实战)2026-01-19 23:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; over…

洛谷 P6419:[COCI 2014/2015 #1] Kamp ← 换根DP

​【题目来源】https://www.luogu.com.cn/problem/P6419【题目描述】一棵树 n 个点,n-1 条边,经过每条边都要花费一定的时间,任意两个点都是联通的。有 K 个人(分布在 K 个不同的点)要集中到一个点举行聚会。聚会…

基于人工智能的智能客服系统设计与实现 #计算机毕业设计 毕设 论文 开题报告

博主介绍 本人程序员一枚,从2017年从事开发行业到现在,我们可以从最初的java,ssm,jsp,发展到现在的spring boot vue框架,随着python的崛起,又融入了django、flask框架的web式开发,一步一步走到现在&#x…

深度学习毕设项目推荐-基于人工智能python-CNN深度学习识别猫脸

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

基于协同过滤算法的非遗文化交流平台设计与实现 #计算机毕业设计 毕设 论文 开题报告

博主介绍 本人程序员一枚,从2017年从事开发行业到现在,我们可以从最初的java,ssm,jsp,发展到现在的spring boot vue框架,随着python的崛起,又融入了django、flask框架的web式开发,一步一步走到现在&#x…