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

告别手动点点点:用Selenium IDE录制Edge浏览器操作,一键生成Python测试脚本

从零到一:用Selenium IDE+Edge打造高效Python自动化测试工作流

每次手动测试电商网站的登录流程时,我都需要重复输入账号密码、点击验证码、检查跳转页面...直到发现Selenium IDE这个神器。它不仅能自动记录我在Edge浏览器里的每个操作步骤,还能一键生成可直接执行的Python测试脚本。今天,就带大家体验这个"操作录制→代码生成→脚本优化"的完整自动化测试闭环。

1. 环境配置:三分钟搭建自动化测试基础

工欲善其事,必先利其器。在开始录制第一个测试用例前,我们需要准备以下工具链:

  • Microsoft Edge浏览器(版本100+)
  • Selenium IDE扩展(最新版2.9.1)
  • Python环境(3.7+)
  • selenium库(4.0+)

安装过程就像组装乐高积木一样简单:

  1. 访问Edge扩展商店搜索"Selenium IDE"
  2. 点击获取→添加扩展
  3. 在终端执行pip install selenium

验证安装成功:在Edge地址栏输入edge://extensions/,确认Selenium IDE图标已激活

常见版本兼容性问题解决方案:

组件版本要求检查命令
Edge≥100edge://settings/help
Python≥3.7python --version
selenium≥4.0pip show selenium

2. 录制实战:电商搜索场景的自动化实现

让我们以"京东商品搜索"为例,演示完整录制流程:

  1. 点击Selenium IDE图标→Create New Project
  2. 命名项目为"jd_search_test"
  3. 在Base URL输入https://www.jd.com
  4. 点击红色录制按钮开始捕获操作

现在执行以下手动操作:

  • 在搜索框输入"机械键盘"
  • 点击搜索按钮
  • 按销量排序
  • 点击第一个商品详情页

录制完成后,你会看到类似这样的操作序列:

click //*[@id="key"] type //*[@id="key"] 机械键盘 click //*[@id="search"]/div/div[2]/button click //*[@id="J_filter"]/div[1]/div[1]/a[2] click //*[@id="J_goodsList"]/ul/li[1]/div/div[1]/a

专业建议:在正式导出前,先使用IDE内置的回放功能验证脚本是否可重复执行

3. 代码生成:从录制到可执行Python脚本

点击Export按钮选择Python/pytest格式,将得到如下代码框架:

from selenium import webdriver from selenium.webdriver.common.by import By class TestJdSearch(): def setup_method(self): self.driver = webdriver.Edge() self.vars = {} def test_search(self): self.driver.get("https://www.jd.com") self.driver.find_element(By.XPATH, '//*[@id="key"]').send_keys("机械键盘") # 后续操作代码... def teardown_method(self): self.driver.quit()

这个阶段常遇到三个典型问题:

  1. 元素定位失效:页面改版导致XPath失效
    • 解决方案:改用更稳定的CSS选择器
  2. 异步加载等待:元素未加载完成就执行操作
    • 修复方案:添加显式等待WebDriverWait(driver, 10).until()
  3. 验证码拦截:自动化操作触发验证
    • 应对策略:配置测试环境跳过验证码

4. 脚本优化:让生成代码具备工业级强度

原始生成的代码就像毛坯房,我们需要进行精装修:

稳定性增强

from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 替换原始find_element search_input = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "key")) )

可维护性改进

# 页面对象模型改造 class JdPage: def __init__(self, driver): self.driver = driver self.search_input = (By.ID, "key") self.search_btn = (By.CSS_SELECTOR, "#search button") def search_product(self, keyword): self.driver.find_element(*self.search_input).send_keys(keyword) self.driver.find_element(*self.search_btn).click()

执行效率提升

  • 使用implicitly_wait替代固定sleep
  • 配置headless模式无界面运行
  • 并行化测试用例执行

5. 进阶技巧:打造企业级测试框架

当项目规模扩大时,我们需要考虑这些增强方案:

配置管理(config.yaml示例):

environments: test: base_url: "https://test.jd.com" headless: true prod: base_url: "https://www.jd.com" headless: false

异常处理机制

def safe_click(element): try: element.click() except StaleElementReferenceException: element = relocate_element() element.click()

持续集成对接

# Jenkins pipeline示例 stage('自动化测试') { steps { bat 'python -m pytest tests/ --html=report.html' } post { always { archiveArtifacts 'report.html' } } }

最近在给某跨境电商项目搭建自动化测试体系时,发现商品详情页的动态参数会导致元素定位频繁失效。通过引入>

http://www.jsqmd.com/news/920140/

相关文章:

  • UE5动画进阶:拆解Lyra Demo中的Animation Warping插件,不只是防滑步那么简单
  • 别再搞错了!用mdadm在Linux上组RAID5,分区和直接挂硬盘区别大了(附详细步骤)
  • 如何做好CTO-首席技术官(CTO应该如何汇报)
  • 保姆级避坑指南:在Ubuntu 20.04上从源码编译Wayland全家桶(Weston+Protocols)
  • 洞察2026年5月廊坊包装印刷市场:高评价直销厂家实力盘点 - 2026年企业资讯
  • 从点亮第一颗灯到运行GBA游戏:我的Tang Nano 4K FPGA开发板实战入门全记录
  • 避坑指南:在Acer SpatialLabs View Pro上跑通UE5裸眼3D的完整流程(含驱动下载与分辨率设置)
  • 保姆级教程:在Ubuntu上用Python为K210芯片训练自定义目标检测模型(附完整代码)
  • 宜宾商用中央空调回收服务商评测:宜宾商用设备整体打包回收/宜宾夜宵店设备打包回收/核心维度对比解析 - 优质品牌商家
  • Pix2Text终极指南:3分钟掌握开源图像转Markdown神器
  • 保姆级教程:在Ubuntu 22.04上从零搭建ROS2 Humble的Navigation2仿真环境(含TurtleBot3)
  • 别再乱用yum clean all了!聊聊CentOS/RHEL 7/8下yum缓存管理的正确姿势
  • 告别虚拟机:在物理服务器上手动配置CentOS 7.9网络与分区的那些细节
  • TCMSP数据库+R语言实战:从网页爬虫到中药-靶点网络图的全流程解析
  • 如何快速解决经典游戏兼容性问题:魔兽争霸3终极优化工具指南
  • 终极VRM4U完全指南:在Unreal Engine 5中实现VRM模型的魔法级导入与运行时加载
  • RTX51 Tiny中os_wait函数详解与任务调度实践
  • 别再只打印classification_report了!用Python+Sklearn把模型评估报告玩出花(附实战代码)
  • 2026年成都新津成外关联招生机构实力排行一览:新津成外师资力量/新津成外怎么样/新津成外招生条件/新津成外招生电话/选择指南 - 优质品牌商家
  • WPF-LabelImg_过滤器
  • 遗传编程调参避坑指南:手把手优化gplearn的SymbolicRegressor,找到‘隐藏公式’
  • 从VMware到Zsh:我的Ubuntu 22.04 Pwn环境搭建与美化全记录(附避坑指南)
  • 别再只盯着AUC了!用R语言实战NRI和IDI,给你的模型评估报告加点‘硬货’
  • 避开ADS Momentum里的‘坑’:Via简化、Heal Layout与Mesh设置实战指南
  • 用STC10F04单片机做个智能交通灯,从画PCB到代码调试保姆级教程
  • 2026正规MVR蒸发器优质品牌推荐 - 优质品牌商家
  • Python3 AI 编程助手
  • 新型海上风电机组及压缩空气储能系统的建模与控制(Matlab代码实现)
  • AI获客企业哪家好 - mypinpai
  • 告别黑白路径图:手把手教你用ggsci调色板为LASSO结果一键换上SCI期刊配色