新闻详情

新闻详情

首页 / 资讯中心 / 详情

谷歌浏览器安装 Selenium IDE 插件:录制回放与自动化测试

发布时间:2026/9/29 6:08:26来源:尧图网络
谷歌浏览器安装 Selenium IDE 插件:录制回放与自动化测试
在浏览器里做自动化最省事的起步方式不是直接写代码而是先从录制回放工具入手而谷歌浏览器安装Selenium IDE插件就是这条路上几乎绕不开的第一步。它本质上是一个跑在 Chrome 里的扩展能把你手动点页面、填表单、切页签的动作录成一条条命令再一键重放。对于刚接触selenium自动化测试框架的同学、需要快速验证页面流程是否通的产品或测试同学、以及想给重复的网页操作找个替身的运维和运营岗位这个组合的性价比都很高。我自己最初就是拿它来录登录加下单流程录完再导出成 Python 脚本省掉了大量对照文档查 API 的时间。下面把安装、配置、录制、回放、导出的完整链路拆开讲包括我在实际使用中踩过的坑。1. 先搞清楚 Selenium IDE 到底是什么、能帮你干什么1.1 它和 Selenium WebDriver 的关系别搞混很多人第一次搜索时会搜到selenium安装然后看到一堆 pip install selenium、chromedriver 下载的内容结果装了以后发现在浏览器里找不到任何界面就以为装错了。这里必须先分清楚两个东西Selenium WebDriver是一个代码库加驱动程序的组合你在 Python、Java 里 import 它通过驱动去操控浏览器而Selenium IDE是一个浏览器扩展它的操作入口是图形界面不需要写一行代码。两者的关系是录制端和执行端。IDE 负责把人的操作翻译成命令表命令表的每一行对应 WebDriver 里的一个方法调用比如click对应element.click()type对应send_keys()open对应driver.get()。所以 IDE 更像一个翻译器和原型工具它帮你把操作逻辑理清楚再把结果交给你熟悉的语言去跑。我通常会这样描述IDE 是画草图WebDriver 是出施工图。草图阶段用 IDE 快速试错确认定位器写法和流程顺序没问题到了需要多浏览器、需要接 CI、需要断言和数据驱动的时候就得换成代码。提示如果你只是想把某个网站的重复操作自动化比如每天导出报表、批量填表其实用 IDE 加命令行运行器就足够了不一定非要写 Python。1.2 什么时候该用它什么时候别硬上先说适合的场景。一是流程探索拿到一个不熟的系统用 IDE 把关键路径录一遍能很快摸清页面跳转逻辑和元素结构。二是回归验证版本上线后想快速跑一遍主流程IDE 的用例跑起来比人点快得多。三是学习定位器新手最难的是写 XPath 和 CSS SelectorIDE 录制时会自动给出它选中的定位方式你可以对照着看它为什么这么选。不适合的场景也要说清楚。IDE 处理不了复杂的逻辑分支和循环虽然它有if、while、forEach这些控制流命令但写起来比代码别扭得多。它也不擅长处理文件上传下载、多窗口切换、验证码、Canvas 绘图这类需要调用浏览器外部能力的操作。另外一旦用例数量超过二三十条维护成本会陡增因为命令表是扁平的复用得靠execute script和子流程可读性远不如封装好的代码。所以我的建议是把 IDE 当成学习和原型阶段的工具别指望它扛起整个测试体系。用它把能跑通这件事先解决掉再决定哪些用例值得迁移到代码里。2. 安装前的环境确认Chrome 版本与安装渠道选择2.1 先看版本号这一步能省掉后面一半的麻烦装扩展之前打开 Chrome地址栏输入chrome://version/把第一行的版本号记下来。为什么要看这个因为后续你要做代码导出和本地运行时需要配套的谷歌浏览器驱动下载而驱动版本必须和浏览器主版本号对齐。Chrome 115 之后驱动由 Chrome for Testing 项目统一发布主版本号对不上就会直接报session not created错误。顺手再确认两件事一是你的网络能不能正常访问扩展商店这决定了你走哪条安装路线二是你的 Chrome 是不是被组织策略管理过如果地址栏上方提示由贵单位管理某些扩展安装入口会被屏蔽这种情况只能走解压加载的方式。顺便提一句热词里出现的win7系统谷歌浏览器ui中文模糊这类情况在旧系统上确实容易遇到渲染问题表现出来是扩展弹窗里的文字发虚。这不是插件本身的毛病而是系统渲染层的老问题通常换个显示缩放比例或者更换较新版本浏览器就能缓解。2.2 三条安装路线按你的实际情况选我把可行的路子整理成表格你可以直接对号入座安装方式适用情况优点局限扩展商店在线安装能正常访问商店自动更新最省心网络不稳时容易卡住离线 crx 包安装商店打不开一次拿到安装包新版浏览器会拦截非商店来源解压目录开发者模式加载crx 被拦截兼容性最好每次启动可能提示关闭开发者模式警告第三方分支版本想用中文界面界面友好版本可能滞后功能同步慢需要说明的是Selenium IDE 的正式版本是英文界面社区里有中文汉化版本但汉化包往往跟不上官方更新节奏遇到新命令可能显示不全。我的做法是用官方版本把常用命令的名称记住就行常用的就那十来个用两天就熟了。注意任何要求你关闭系统安全设置、导入来源不明的证书、或者填入账号密码的安装助手都不要用。扩展安装本身不需要这些操作。3. 手把手走一遍安装流程3.1 走商店在线安装最稳的一条路打开 Chrome访问扩展商店在搜索框输入 Selenium IDE。你会看到几个同名或名字相近的结果认准开发者为 Selenium 官方那个图标是一个蓝色背景加白色S字母。点进详情页点添加至 Chrome弹窗里点添加扩展程序等两三秒就装好了。装好后的默认位置在浏览器右上角的拼图图标里。点拼图图标找到 Selenium IDE点右侧的图钉把它固定到工具栏这样以后一键就能打开。第一次打开会弹出一个小窗或侧边栏询问是否创建新项目选Record a new test in a new project输入项目名再填一个基础 URL比如你要测的站点首页。这里有个细节值得说基础 URL 一定要填对协议头http://和https://不能省否则录制时open命令的相对路径会拼接错误回放时直接跳到空白页。我见过不少人卡在这一步以为是插件坏了其实就是 URL 少写了几个字符。3.2 离线 crx 与开发者模式加载如果商店打不开就得走离线路线。先从可信的镜像站点下载对应版本的.crx文件然后在地址栏输入chrome://extensions/打开右上角的开发者模式开关。接下来有两种做法直接把.crx文件拖拽到扩展管理页面里浏览器会弹出确认框点确认即可。如果拖拽没反应或者提示无法从该网站添加应用、扩展程序和用户脚本说明浏览器拦截了非商店来源。这时候把.crx的后缀改成.zip解压到一个固定目录然后点扩展页面左上角的加载已解压的扩展程序选中那个解压出来的目录。第二种方式有个副作用每次重启浏览器可能弹出请停用以开发者模式运行的扩展程序的提示。这个提示可以点关闭不影响功能。另外一个提醒是解压目录不要放在桌面或者临时文件夹里浏览器会持续读取这个路径文件被清理了扩展就失效了。3.3 安装后的初始化设置装完别急着录先把几项设置调好。第一项是语言和主题IDE 设置里有深色模式选项长时间录制时眼睛舒服不少。第二项是项目保存方式默认保存在浏览器本地存储里但本地存储会随浏览器数据清理而丢失所以养成导出.side文件的习惯这个文件是 JSON 格式的可以直接纳入版本管理。第三项是运行器配置。如果你想脱离浏览器界面跑用例需要安装 Node.js然后执行npm install -g selenium-side-runner安装完成后在.side文件所在目录执行selenium-side-runner demo.side它会自动拉取对应浏览器的驱动并执行。这里就是前面提到驱动版本要对齐的地方如果报错提示驱动和浏览器版本不匹配用--chromedriver-path参数手动指定本地驱动路径即可selenium-side-runner --chromedriver-path /usr/local/bin/chromedriver demo.side4. 第一条用例录制、回放与定位器调整4.1 录制流程与命令表解读点击 IDE 界面里的录制按钮会跳出一个 Chrome 窗口你在那个窗口里的操作都会被记录。建议第一条用例选简单点的打开首页、点登录、填账号、填密码、点提交、验证跳转。录完后点停止回到 IDE 界面你会看到一张命令表每行三列Command、Target、Value。Command是动作类型Target是定位器Value是可选参数。举个具体的open /login click css#login-btn type idusername testuser type idpassword Passw0rd click cssbutton[typesubmit] assert text css.welcome Welcome看懂这张表的关键是理解Target。IDE 默认会优先选id因为id在页面上唯一且稳定如果没有id它会退化到name、css、xpath。你可以在 Target 那一列点下拉箭头看它给了几个候选定位器还能看到每个候选匹配到几个元素。这个功能对新手的价值极高相当于现场教学。4.2 回放失败最常见的三个原因第一条用例跑不通太正常了我自己录的第一条用例失败了四次。总结下来无非三类。第一类是元素还没加载出来。页面是异步渲染的命令执行时元素还在路上。解决办法是在点击前加一条wait for element visibleTarget 填你要等的那个元素的定位器Value 可以留空或填超时毫秒数。别用固定pause那个不管页面快慢都死等会让整个用例变慢。第二类是定位器不够唯一。比如用css.btn结果页面上有五个按钮都匹配。这时候切到 XPath 写法用文本内容锁定例如xpath//button[normalize-space(text())提交]。加normalize-space是为了处理文本前后的空格和换行这个在真实页面上非常常见。第三类是被 iframe 挡住了。很多后台系统的表单区域是嵌在 iframe 里的主文档找不到里面的元素。处理办法是在操作前加select frameTarget 填 iframe 的定位器操作完再select frame回到relativetop。如果跳到了新窗口用select window切换句柄。4.3 非原生下拉框的定位思路这是热词里提到的典型问题值得单独讲。网页上的下拉框分两种一种是select标签这种直接用select命令加label选项文本就行IDE 原生支持。另一种是divulli组合出来的伪下拉框本质是一堆普通元素加上显隐控制select命令对它完全无效。我的处理套路分三步。第一步点触发按钮把下拉面板展开命令用click定位到那个显示当前选项的 div。第二步等面板出现用wait for element visible等待某个li渲染完成。第三步点目标选项定位写法推荐xpath//div[contains(class,dropdown)]//li[normalize-space()选项二]写成xpath而不是css的原因是能用normalize-space()处理文本而且支持按文本匹配不用去猜那一串哈希类名。如果选项文字会变可以用序号定位xpath//div[contains(class,dropdown)]//li[2]但序号定位很脆排序一变就失效能不用就不用。还有一种情况是下拉面板挂在body末尾跟触发按钮不在同一个父节点下。这时候前面的//div[contains(class,dropdown)]会匹配不到需要改成从全局找xpath//li[normalize-space()选项二]再用wait配合确认可见性。提示伪下拉框展开后先别急着点选项用 IDE 的Find target in page按钮在页面上点一下目标元素。它会告诉你这个元素当前的定位器和匹配数量是排查定位问题最快的办法。5. 从 IDE 到代码导出与后续框架衔接5.1 导出脚本与驱动配置用例调通以后右键点击用例名选 Export能看到 Java JUnit、Java TestNG、Python pytest、C# NUnit、JavaScript Mocha 等一堆选项。我一般先导 Python pytest因为读起来最接近自然语言团队里非开发背景的同学也能看懂。导出的代码大概长这样def test_login(self): self.driver.get(https://example.com/login) self.driver.find_element(By.ID, username).send_keys(testuser) self.driver.find_element(By.ID, password).send_keys(Passw0rd) self.driver.find_element(By.CSS_SELECTOR, button[typesubmit]).click() assert Welcome in self.driver.find_element(By.CSS_SELECTOR, .welcome).text可以看到命令表里的每一行都变成了一个方法调用type变成了两次send_keysassert text变成了断言。导出后第一件要做的事是补上WebDriverWait把 IDE 里的wait命令换成显式等待因为代码里的等待比命令更适合精细控制。第二件事是把硬编码的账号密码挪到配置文件或者环境变量里别留在代码仓库。驱动那块如果你用 Selenium 4.6 以上版本一般不用手动管理驱动webdriver.Chrome()会自动去找匹配的驱动。如果因为网络原因自动下载失败就手动下载对应版本放到 PATH 里或者用Service类指定路径。5.2 元素枚举与批量定位的落地方式热词里还有个selenium 页面元素枚举这个在真实项目里很有用。场景是一个列表页有几十行数据你要逐行读取或者逐行操作。IDE 里的做法是用forEach命令Target 填一个返回集合的表达式例如xpath//table//tbody/tr然后在循环体里用${x}变量引用当前元素。导成代码以后更灵活rows driver.find_elements(By.XPATH, //table//tbody/tr) for row in rows: cells row.find_elements(By.TAG_NAME, td) print([c.text for c in cells])这里有个性能细节要提醒find_elements返回的是列表如果循环过程中页面发生了刷新或者 DOM 重绘之前拿到的元素引用会失效报StaleElementReferenceException。稳妥的做法是在循环内部重新定位或者先把需要的文本一次性提取出来处理别在循环体里做会触发刷新的操作。另外枚举元素时如果列表很长页面可能是懒加载的需要先滚动到底部触发加载再重新枚举。IDE 里有scroll命令代码里用driver.execute_script(window.scrollTo(0, document.body.scrollHeight))实现。6. 常见问题速查与避坑清单6.1 安装类问题对照表现象可能原因处理方式商店里搜不到插件商店访问异常换离线包或解压加载拖拽 crx 无反应浏览器拦截非商店来源改后缀解压后加载目录加载后扩展消失解压目录被移动或清理固定目录并保留文件界面中文显示发虚系统渲染与缩放设置调整显示缩放或换版本每次启动提示开发者模式解压加载的正常提示点关闭即可不影响使用插件图标点开是空白本地存储损坏移除重装并重新导入 side 文件补充一条经验如果你同时装过多个同名或相似名字的自动化扩展它们可能会争夺同一个快捷键表现出来是按了录制键没反应。到chrome://extensions/里禁用掉不用的那个就能解决。6.2 录制回放类问题排查顺序遇到回放失败我的排查顺序是固定的按这个顺序走基本能在五分钟内定位看是否是页面没加载完加wait for element visible重试。用 Find target 功能验证定位器是否唯一匹配。检查是否在 iframe 或新窗口里补select frame/select window。检查是否有弹窗、遮罩、Cookie 同意条挡住元素先关掉再点。检查是否是动态类名换成文本或属性组合的 XPath。最后才怀疑是插件版本问题尝试升级或换版本。这个顺序的逻辑是从最常见、最容易修复的原因往少见原因走避免一上来就重装插件浪费时间。6.3 几个我踩过之后才明白的点第一别用录制出来的全部命令直接当回归用例。录制会记录很多无意义的中间动作比如鼠标划过、页面滚动、输入框自动补全的中间态。我的做法是录完后手动删掉一半命令只保留必要的步骤用例越短越稳。第二.side文件一定要进版本库。我有一次清理浏览器数据本地存储里的十几个用例全没了只能重录。从那以后我养成了每次录完就导出的习惯而且导出文件名带上日期和功能模块方便回溯。第三IDE 和代码不要各维护一套。团队的常见坑是 IDE 里有一份用例代码仓库里也有一份两边逐渐不一致最后不知道该信哪个。定好规则IDE 只作为原型确认可用后立刻导出进代码仓库IDE 里的版本就废弃掉。第四注意新标签页和弹窗的句柄切换。现代前端点链接经常新开页签如果在原窗口里找元素当然找不到。命令表里用select windowTarget 填title新页面标题或者用变量存句柄代码里用driver.switch_to.window(driver.window_handles[-1])。第五执行速度别调太快。IDE 的运行设置里有速度滑块调到最快时有些动画还没结束就执行下一条反而更容易失败。我一般设在中等偏慢配合显式等待整体反而更快因为减少了重试。第六导出代码后要处理硬编码数据。录制时的账号、手机号、订单号都是死的跑第二次就冲突了。导出后把这类数据抽成参数用随机数或者时间戳生成比如用户名拼上int(time.time())。最后分享一个我至今还在用的做法每次拿到一个新系统我会先用 Selenium IDE 录一条最短的冒烟用例只覆盖打开首页、完成登录、验证关键元素存在这三步。这条用例跑通说明环境、驱动、定位器、等待逻辑都是对的后面再往上叠复杂场景就有了可靠的地基。这个习惯帮我省掉了大量在环境问题上反复折腾的时间。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

企业微信会话存档 + SCRM:可视化质检与敏感词预警落地方案 2026/9/29 6:58:10

企业微信会话存档 + SCRM:可视化质检与敏感词预警落地方案

在企业微信客户服务场景中,员工回复不及时、沟通不合规、聊天记录无法追溯,一直是合规与运营管理的三大痛点。一维助手 SCRM 结合企业微信会话存档能力,打造了一套「看得见、管得住、可追溯」的会话管理方案,帮助企业实现客户沟通…

阅读更多 →
嵌入式开发实战:从RECH作业到工程化项目完整复盘 2026/9/29 6:58:04

嵌入式开发实战:从RECH作业到工程化项目完整复盘

拿到这次的"RECH第一次作业"任务时,我第一时间并没有急着去敲代码。做嵌入式开发这几年养成的习惯,接到任何项目需求,先别管硬件方案多炫、功能清单多长,先把"这个作业到底要我解决什么问题"搞清楚。RECH这个…

阅读更多 →
Midway 移除 Node.js v14 CI:从 v3.12.0 起的版本策略、兼容性保障与工程实践 2026/9/29 6:58:04

Midway 移除 Node.js v14 CI:从 v3.12.0 起的版本策略、兼容性保障与工程实践

后端微服务云原生 【免费下载链接】midway 🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate w…

阅读更多 →
16G显存真能跑27B量化大模型?实操效果与优化指南 2026/9/29 6:57:57

16G显存真能跑27B量化大模型?实操效果与优化指南

先别急着过年,如果你手头正好是一张16G显存的显卡,又刷到今天这种标题——"16G显存本地部署27B量化大模型实际效果"——你的第一反应可能是:真的假的?会不会卡成PPT?量化之后还能用吗?我先直接说…

阅读更多 →
Twitter营销自动化实战:工具选择、安全边界与运营策略 2026/9/29 6:57:57

Twitter营销自动化实战:工具选择、安全边界与运营策略

很多人盯上Twitter营销,第一反应就是“搞个自动化工具,机器发帖,省事”。这个思路没错,但往往死得也最快——账号一封,前面积累的粉丝和权重全打水漂。我做海外社交媒体运营这几年,从纯手动发帖到重度依赖各…

阅读更多 →
从零搭建AI工程能力:数据、模型、训练与推理全链路实践 2026/9/29 6:57:57

从零搭建AI工程能力:数据、模型、训练与推理全链路实践

1. 从零搭建AI工程能力:为什么我劝你别一上来就调包这两年AI应用开发的门槛肉眼可见地降低了,随便拉个框架、调个API就能跑出一个能对话的Demo。但我带过不少新人,也面试过不少号称“做过AI项目”的候选人,发现一个很普遍的问题&a…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉