当前位置: 首页 > 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.zskr.cn/news/1431462.html

相关文章:

  • 保姆级避坑指南:在Ubuntu 20.04上从源码编译Wayland全家桶(Weston+Protocols)
  • UE5动画进阶:拆解Lyra Demo中的Animation Warping插件,不只是防滑步那么简单
  • 从点亮第一颗灯到运行GBA游戏:我的Tang Nano 4K FPGA开发板实战入门全记录
  • 如何快速解决经典游戏兼容性问题:魔兽争霸3终极优化工具指南
  • 终极VRM4U完全指南:在Unreal Engine 5中实现VRM模型的魔法级导入与运行时加载
  • WPF-LabelImg_过滤器
  • 遗传编程调参避坑指南:手把手优化gplearn的SymbolicRegressor,找到‘隐藏公式’
  • 从VMware到Zsh:我的Ubuntu 22.04 Pwn环境搭建与美化全记录(附避坑指南)
  • 用STC10F04单片机做个智能交通灯,从画PCB到代码调试保姆级教程
  • 城通网盘解析器:如何3分钟告别下载等待,实现文件秒传体验?
  • 告别黑白路径图:手把手教你用ggsci调色板为LASSO结果一键换上SCI期刊配色
  • AI获客企业哪家好 - mypinpai
  • AI工具接入智能收藏品的最后1公里:3类合规红线、4种钱包级安全加固及实时风控响应机制
  • 新型海上风电机组及压缩空气储能系统的建模与控制(Matlab代码实现)
  • 保姆级教程:用Python脚本把TT100K交通标志数据集转成YOLOv8能用的格式(附完整源码)
  • WPF-LabelImg_主内容区域_右侧栏
  • 科研工作流搭建:用PyLith+ParaView在Ubuntu上跑通第一个断层模拟(从安装到出图)
  • 别再死磕图像了!用1DCNN处理传感器时序数据(MATLAB/Keras实战对比)
  • BG3模组管理器完全指南:三步掌握《博德之门3》模组管理技巧
  • 保姆级教程:用Dism++在PE里给Win11系统提前注入Intel VMD驱动,搞定11代CPU安装
  • 2026世界杯网络安全提前开战:4300个钓鱼域名背后的黑产帝国与防御全解
  • 终极指南:如何轻松批量下载Iwara视频的完整教程
  • 不止是同步:用chronyc命令深度监控你的CentOS 9服务器时间健康状态
  • Type-C接口笔记本如何连接交换机?实测绿联USB-C转Console线配置全流程
  • 告别‘No URLs in mirrorlist’:CentOS 8服务器快速切换Vault源或AlmaLinux源保姆级教程
  • 从CentOS 7.9安装到Vim实战:我的Linux入门避坑全记录
  • 任务态脑电分析入门:搞懂ERP实验的数据“预处理”到底在做什么
  • 2026年当下,如何选择优秀的背部训练器定做厂家?一份详尽的行业推荐指南 - 2026年企业资讯
  • 别再乱改BaseValue了!深入理解UE5 GAS中Attribute的CurrentValue与BaseValue机制
  • 如何构建高效的AI语音识别系统:从Whisper-WebUI实战解析