Cursor AI 自动搜索:Python+Selenium 实战

用 Cursor 一句话提示词生成 Selenium 脚本,实现 Google 自动搜索全流程。
文章介绍了一个用 Cursor 生成 Selenium 自动化脚本的短视频教程。作者在 Cursor Chat 中输入一段自然语言提示,要求 AI 完成"在 Google 上找到搜索框、输入查询词、按回车、打印页面标题",Cursor 随即生成 google_search.py,并用 By.NAME 定位搜索框、send_keys 输入内容、Keys.ENTER 触发搜索、Title 打印结果页标题。脚本可直接在 Cursor 中运行,Chrome 会自动打开并完成搜索,全程无需手动操作。文章还从工程角度补充了几点实践建议:By.NAME 依赖页面结构稳定性,实际项目需配合显式等待;自动化访问搜索引擎要注意频率控制,避免触发验证或限流;Selenium 需要版本匹配的浏览器驱动,是新手常见卡点。系列下一集将进入表单填写自动化。
从打开浏览器到自动搜索
如果你已经用 Cursor 打开过 Chrome,下一步自然是让搜索也自动化。据 YouTube 上一段短视频教程(EP02)演示,用 Cursor Chat 就能让 AI 直接写出可运行的 Selenium 脚本,完成"打开 Google → 输入关键词 → 回车 → 打印页面标题"的完整流程。
这个系列上一集做的是打开 Chrome,这一集把动作推进到搜索,下一集预告是表单填写自动化,构成了一个循序渐进的小型自动化学习路径。

一句话提示词,AI 生成完整脚本
演示的第一步是打开 Cursor Chat,然后直接输入一段自然语言需求:在 Google 上找到搜索框、输入查询词、按回车、打印标题,最后发送。
提示词本身没有指定任何 Python 库或 API 细节,完全靠 AI 自行推断实现方式。这正是 Cursor 这类 AI 编程工具的价值所在——把"做什么"交给开发者,把"怎么写"交给模型。

生成的文件:google_search.py
发送提示后,Cursor 开始生成代码,视频中可以看到它正在写入 google_search.py。据创作者讲解,脚本中几个关键调用各司其职:
- By.NAME:用于定位 Google 页面上的搜索框元素
- send_keys:把查询关键词输入到搜索框
- Keys.ENTER:模拟回车键,触发搜索
- Title:读取并打印结果页面的标题
这几个 API 是 Selenium 最基础也最常用的操作,适合作为自动化测试或爬虫入门的第一个脚本。

Selenium WebDriver 是 Selenium 项目的核心组件,它提供了一套面向对象的 API,让代码能够以编程方式控制真实浏览器——打开页面、查找元素、模拟点击和键盘输入、读取页面内容。WebDriver 通过与各浏览器官方提供的驱动(如 chromedriver)通信,把 Python 方法调用翻译成浏览器能理解的底层指令。文中脚本的每一个动作(定位搜索框、输入关键词、按回车)本质上都是 WebDriver 协议的一次请求。理解这一点有助于明白:脚本并不是在"模拟"浏览器,而是在直接驱动一个真实的 Chrome 实例。
By.NAME、send_keys、Keys.ENTER 都属于 WebDriver API 的组成部分。By 是一个定位策略枚举类,除 NAME 外还有 ID、CSS_SELECTOR、XPATH 等;send_keys 是 WebElement 对象的方法,用于向输入框等可编辑元素发送文本或按键;Keys 则封装了键盘常量,Keys.ENTER 表示回车键。这三者组合是 Selenium 中最常见的"输入并提交"模式。
跑起来:全自动执行过程
脚本生成后,在 Chat 中输入运行指令,让 Cursor 执行 google_search.py。视频描述的过程是:Chrome 自动打开、搜索词自动输入、结果页自动出现,全程无需手动操作。
创作者用"जबरदस्त"(意为"太棒了")来形容这个效果。从工程角度看,这类脚本的意义不止于演示——它展示了 AI 工具如何把"想法到可运行代码"的链路压缩到几句话之内。

注意事项与实践建议
视频没有展开讲坑点,但从脚本结构可以推断几个实践中的常见问题:
元素定位的稳定性:用 By.NAME 定位搜索框依赖 Google 页面结构的稳定性,页面改版可能导致脚本失效,实际项目中常需配合显式等待。
频率控制:自动化访问搜索引擎时,高频请求可能触发验证或限流,做批量任务时应加入合理间隔。
驱动管理:Selenium 需要匹配版本的浏览器驱动,这是新手最容易卡住的一步,AI 生成的代码通常不会替你处理好环境配置。
显式等待(Explicit Wait) 是 Selenium 中应对页面异步加载的标准手段。现代网页的元素往往在 DOM 加载完成后才由 JavaScript 动态渲染,如果脚本在元素出现前就去查找,会直接抛出 NoSuchElementException。显式等待通过 WebDriverWait 配合预期条件(如 presence_of_element_located)让脚本在指定超时内反复轮询,直到条件满足或超时。与之相对的隐式等待(implicitly_wait)是全局设置,粒度较粗。文中提到的"页面改版导致脚本失效",很多时候其实是元素延迟加载造成的时序问题,显式等待能显著提升脚本健壮性。
浏览器驱动(WebDriver)管理 是 Selenium 环境配置中最容易出错的一环。Chrome 每次大版本更新后,旧版 chromedriver 可能无法与新浏览器通信,报出 SessionNotCreatedException 之类的错误。早期做法是手动下载与浏览器版本严格匹配的驱动并放入 PATH,维护成本很高。现在更推荐使用 webdriver-manager 这类库,或 Selenium 4.6 之后内置的 Selenium Manager,它们会自动检测浏览器版本并下载匹配的驱动,大幅降低新手门槛。AI 生成的代码片段通常只关注业务逻辑,不会包含这些环境处理,需要开发者自行补全。
下一步:表单填写自动化
创作者在结尾预告了下一集主题——表单填写(Form Fill)自动化。从打开浏览器、自动搜索到填写表单,这个系列用短视频形式把 Selenium 自动化的核心操作串成了一条线。
对想快速上手 Python 自动化的开发者来说,用 Cursor 生成代码、再逐行理解生成结果的组合,比从零手写更容易建立直观认知。
相关推荐

告别Copilot订阅费:三款免费本地AI编程工具推荐
GitHub Copilot每月20美元太贵?Workflows HQ推荐三款免费本地AI编程工具:Cursor离线补全、Clawed 3.7处理多文件架构、Make自动化测试部署,覆盖开发全流程。

AI编程代理如何工作?Codex、Claude Code与Cursor解析
深入解析AI编程代理的工作原理:从探索代码库、拆解任务、生成代码到运行测试与修复错误,揭秘Codex、Claude Code、Cursor等工具背后的代理循环机制,并探讨开发者如何审查与验证AI生成的代码。

俄乌战争如何结束?地缘专家解析停火困境与和平路径
地缘政治专家在Lex Fridman播客中深度解析俄乌战争的结束路径:局部停火为何可能、普京在等待什么、停火协议为何可能通向第三次战争,以及俄罗斯帝国转型失败的深层逻辑。