在 macos 上搭建本地浏览器自动化测试环境,核心是确保 chrome/firefox 浏览器、对应版本 webdriver(chromedriver/geckodriver)及 python/selenium 三者版本协同且路径可达:安装浏览器至 /applications,下载匹配版本 driver 并移至 /usr/local/bin,配置 path 后用 pip3 install selenium,运行含 service 初始化的脚本验证即可。
在 macos 上搭建支持自动化测试的本地浏览器环境,核心是让 selenium 或 playwright 等框架能稳定启动并控制 chrome、firefox 或 safari。它不依赖 xcode 或 ios 工具链,重点在于浏览器、驱动和语言运行时三者的版本协同与路径可达。
安装主流浏览器(Chrome / Firefox 优先)
自动化测试最常用 Chrome 和 Firefox,它们对 WebDriver 协议支持成熟、更新及时:
- Chrome:从官网下载最新稳定版 dmg 安装包,拖入 Applications 文件夹;确保路径为 /Applications/Google Chrome.app
- Firefox:同样从官网下载 dmg 安装,路径应为 /Applications/Firefox.app
- Safari 可选:系统自带,但需手动开启「开发」菜单(Safari → 偏好设置 → 高级 → 勾选“在菜单栏中显示‘开发’菜单”),再启用「允许远程自动化」(开发 → 允许远程自动化)
配置对应 WebDriver(chromedriver / geckodriver)
浏览器本身不直接响应自动化指令,必须通过匹配版本的 WebDriver 二进制文件中转:
- Chrome 推荐用 ChromeDriver:访问 chromedriver.chromium.org,下载与你 Chrome 版本号严格一致的 driver(如 Chrome 124.x → 下载 ChromeDriver 124.x)
- 解压后得到 chromedriver 文件,执行:
chmod +x chromedriver && sudo mv chromedriver /usr/local/bin/ - Firefox 对应 geckodriver:从 GitHub releases 下载,同样加执行权限并移至
/usr/local/bin/ - 验证是否生效:终端运行
chromedriver --version或geckodriver --version,有输出即成功
准备语言运行时与测试库
以 Python 为例(最常用且轻量),无需复杂环境管理即可快速启动:
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
- 确认已安装 Python 3.8+(macOS 自带 Python 2.7,不建议覆盖;推荐用
brew install python装新版) - 安装 Selenium:
pip3 install selenium - 写一个最小验证脚本 test_chrome.py:
from selenium.webdriver.chrome.service import Service
service = Service("/usr/local/bin/chromedriver")
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")
print(driver.title)
driver.quit()
运行 python3 test_chrome.py,若弹出 Chrome 窗口并打印标题,说明环境就绪。
常见卡点与直击解法
实际搭建中这几个问题高频出现,解决后基本无阻:
-
“无法打开 Chrome,因为无法验证开发者”:右键 Chrome.app → 「显示简介」→ 勾选「仍要打开」;或终端执行:
xattr -d com.apple.quarantine "/Applications/Google Chrome.app" -
chromedriver 启动报 “session not created”:90% 是版本不匹配,用
google-chrome --version查 Chrome 版本,再核对 driver 版本 -
脚本运行无反应或报错找不到 driver:确认
/usr/local/bin在$PATH中(终端执行echo $PATH查看);也可改用绝对路径初始化 Service - 如需多浏览器并行测试,可同时装 Chrome + Firefox + 对应 driver,代码中切换
webdriver.Chrome()或webdriver.Firefox()即可










