- 使用浏览器插件(推荐,最简单直观):直接在浏览器中安装一个录制插件,它会将你的操作(点击、输入、导航等)自动转换成 Python 代码。
- 使用代码库(如 Selenium IDE 的 Python 导出):先使用 Selenium IDE 录制和调试,然后将其导出为 Python 脚本。
下面我将详细介绍这两种方法,并提供一个完整的示例。

使用浏览器插件(Selenium IDE)
这是最推荐给初学者的方法,因为它非常直观,所见即所得。
步骤 1:安装 Selenium IDE 插件
Selenium IDE 最初是 Firefox 的一个独占插件,但现在也支持 Chrome 和 Edge。
-
打开浏览器的扩展商店:
-
点击“添加到浏览器”,并按照提示完成安装。
(图片来源网络,侵删)
步骤 2:使用 Selenium IDE 录制
- 打开 Selenium IDE 插件,你会看到一个简洁的界面。
- 点击左上角的 红色圆形按钮 开始录制。
- 在浏览器中执行你想要自动化的操作:
- 打开一个网站 (
https://www.bing.com) - 在搜索框中输入 "Selenium Python"
- 点击搜索按钮
- 打开一个网站 (
- 完成操作后,回到 Selenium IDE 界面,再次点击红色按钮停止录制。
步骤 3:将录制的脚本导出为 Python 代码
- 在 Selenium IDE 的左侧,你会看到一个“测试用例”列表,点击你刚刚录制的那个用例。
- 在右侧的“命令”面板中,你会看到所有被记录下来的操作(如
open,type,click等)。 - 点击右上角的 “导出” 按钮。
- 在弹出的窗口中,选择 Python 语言,然后点击 “导出”。
步骤 4:运行导出的 Python 脚本
- 导出的文件(
test_case.py)会包含所有必要的代码。 - 确保你已经安装了 Selenium 库:
pip install selenium
- 你可能还需要下载对应浏览器的 WebDriver,如果你使用 Chrome,需要下载 ChromeDriver,并将
chromedriver.exe(或chromedriver在 Mac/Linux) 放在你的 Python 脚本同目录下,或者将其路径添加到系统环境变量PATH中。
导出的代码示例(已优化):
导出的原始代码可能比较冗长,下面是一个简化且更健壮的版本。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
# --- 这部分是自动生成或需要你配置的 ---
# 使用 webdriver-manager 自动管理 driver,无需手动下载
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
# 1. 打开目标网站
driver.get("https://www.bing.com")
# 2. 最大化窗口,确保元素可见
driver.maximize_window()
# 3. 定位搜索框 (使用更可靠的 XPath)
# 原始导出可能是 By.NAME 或 By.ID,XPath 通常更稳定
search_box = driver.find_element(By.XPATH, '//*[@id="sb_form_q"]')
# 4. 在搜索框中输入文本
search_box.send_keys("Selenium Python")
# 5. 定位并点击搜索按钮
search_button = driver.find_element(By.XPATH, '//*[@id="search_icon"]')
search_button.click()
# 6. (可选) 等待几秒,观察结果
# 在实际脚本中,应该使用显式等待 (WebDriverWait) 替代 time.sleep()
time.sleep(5)
finally:
# 7. 无论成功与否,最后都关闭浏览器
driver.quit()
使用代码库手动编写(模拟录制逻辑)
如果你想在不使用插件的情况下“录制”,可以手动编写一个脚本,通过打印日志来模拟录制过程,这有助于你理解 Selenium 的工作原理。
这种方法的核心思想是:每一步操作都加上日志记录,并处理异常。

示例:手动编写并记录一个搜索脚本
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.common.exceptions import NoSuchElementException
# 初始化日志
def log_action(action, element_info, status="SUCCESS"):
print(f"[{status}] ACTION: {action}")
print(f" TARGET: {element_info}")
print("-" * 30)
# --- 开始录制 ---
print(">>>>>>> 开始录制 <<<<<<<")
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
# 步骤 1: 导航到 Bing
action = "打开 URL"
element_info = "https://www.bing.com"
driver.get(element_info)
log_action(action, element_info)
# 步骤 2: 最大化窗口
action = "最大化窗口"
element_info = "N/A"
driver.maximize_window()
log_action(action, element_info)
# 步骤 3: 在搜索框输入文本
action = "输入文本"
element_info = '搜索框 (By.XPATH: //*[@id="sb_form_q"])'
search_box = driver.find_element(By.XPATH, '//*[@id="sb_form_q"]')
search_box.send_keys("Selenium Python")
log_action(action, element_info)
# 步骤 4: 点击搜索按钮
action = "点击元素"
element_info = '搜索按钮 (By.XPATH: //*[@id="search_icon"])'
search_button = driver.find_element(By.XPATH, '//*[@id="search_icon"]')
search_button.click()
log_action(action, element_info)
# 步骤 5: 等待
action = "等待"
element_info = "5 秒"
time.sleep(5)
log_action(action, element_info)
print(">>>>>>> 录制成功 <<<<<<<")
except NoSuchElementException as e:
log_action(f"元素未找到: {e}", e, "FAILED")
except Exception as e:
log_action(f"发生未知错误: {e}", e, "FAILED")
finally:
# 步骤 6: 关闭浏览器
action = "关闭浏览器"
element_info = "N/A"
driver.quit()
log_action(action, element_info)
print(">>>>>>> 录制结束 <<<<<<<")
运行这个脚本,你会在控制台看到类似“录制日志”的输出,这可以帮助你回顾每一步操作。
总结与对比
| 特性 | 方法一 (Selenium IDE 插件) | 方法二 (手动代码模拟) |
|---|---|---|
| 易用性 | ⭐⭐⭐⭐⭐ (非常高) | ⭐⭐ (较低) |
| 学习曲线 | 几乎为零 | 需要了解 Selenium API 和定位元素 |
| 代码质量 | 生成的代码可能冗余,需要优化 | 代码结构更清晰,可控性高 |
| 适用场景 | 快速原型验证、简单脚本、初学者学习 | 复杂业务逻辑、需要高度定制、长期维护的项目 |
| 调试能力 | IDE 内部有调试工具,方便 | 需要依赖 Python 调试器 (pdb) 或 IDE 调试功能 |
给新手的建议:
- 从 Selenium IDE 开始:用它来录制你的基本操作,快速生成一个可工作的脚本原型。
- 学习并优化代码:将导出的 Python 代码拿到你的编辑器(如 VS Code)中,学习它的工作原理,使用
WebDriverWait替代time.sleep(),使用更稳定的定位策略(如 XPath 或 CSS Selector),并改进代码结构(如使用 Page Object 模式)。 - 逐步过渡到手动编写:当你对 Selenium 更熟悉后,对于复杂的、需要维护的自动化测试,建议手动编写代码,因为这会带来更好的灵活性和可读性。
