2、环境搭建与浏览器启动:安装Python环境、安装Playwright库、安装浏览器驱动、启动Chromium/Firefox/WebKit

说实话,很多同学学自动化测试,第一步就卡在环境搭建上。

我见过太多人,代码写好了,结果跑不起来——不是Python版本不对,就是浏览器驱动没装。嗯,这章咱们就把这些坑一个个填平。

2.1 安装Python环境

Playwright官方推荐Python 3.7以上版本。我个人习惯用Python 3.10,稳定且兼容性好。

Windows用户:

  1. 去python.org下载安装包,记得勾选「Add Python to PATH」
  2. 打开命令行,输入 python --version 验证

macOS/Linux用户:

  1. macOS自带Python,但版本可能偏旧。我建议用Homebrew安装:brew install python@3.10
  2. Linux用户用包管理器:sudo apt install python3.10
小技巧: 我习惯用pyenv管理多个Python版本。项目多了你就知道,不同项目依赖不同Python版本,pyenv能让你随时切换,省心不少。

2.2 安装Playwright库

环境准备好后,安装Playwright本身其实就一行命令:

pip install playwright

等等,别急着敲回车。我建议你先创建一个虚拟环境。为什么?

你想想看,不同项目依赖的库版本可能冲突。我之前有个项目用Playwright 1.30,另一个用1.40,如果不隔离,分分钟出问题。

创建虚拟环境:

python -m venv myenv
# Windows激活
myenv\Scripts\activate
# macOS/Linux激活
source myenv/bin/activate

激活后,再执行安装命令:

pip install playwright

验证安装:

python -c "import playwright; print(playwright.__version__)"

如果能正常输出版本号,说明安装成功。

2.3 安装浏览器驱动

这一步是新手最容易踩坑的地方。

Playwright和Selenium不一样。Selenium需要你手动下载ChromeDriver,还得匹配浏览器版本。Playwright则内置了浏览器下载工具。

安装浏览器驱动,只需要一行命令:

playwright install

这条命令会下载Chromium、Firefox和WebKit三个浏览器。嗯,大概需要几分钟,取决于你的网速。

注意: 如果你只想安装某个浏览器,可以指定:
playwright install chromium 只装Chromium
playwright install firefox 只装Firefox
playwright install webkit 只装WebKit

我曾经遇到过一个问题:在公司内网环境下,下载总是超时。后来发现是代理没配置好。如果你也遇到类似情况,可以设置环境变量:

# Windows
set PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/playwright
# macOS/Linux
export PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/playwright

说白了,就是换个镜像源,下载速度会快很多。

2.4 启动Chromium/Firefox/WebKit

环境都搭好了,咱们来写第一段代码。激动不?

启动Chromium:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    browser.close()

这段代码做了几件事:

  • 导入Playwright的同步API
  • 启动Chromium浏览器(headless=False表示显示界面)
  • 打开百度首页
  • 打印页面标题
  • 关闭浏览器

启动Firefox:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.firefox.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    browser.close()

看到了吗?只是把 p.chromium 换成了 p.firefox。Playwright的API设计得非常统一,切换浏览器几乎不需要改代码。

启动WebKit:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.webkit.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    browser.close()

三种浏览器的区别:

浏览器 内核 适用场景
Chromium Blink 最常用,兼容性好,调试方便
Firefox Gecko 测试Firefox专属特性,或需要Gecko渲染
WebKit WebKit 模拟Safari环境,iOS测试常用

我个人习惯:日常开发用Chromium,上线前再用Firefox和WebKit跑一遍全量用例。你想想看,不同浏览器渲染差异还是挺大的,尤其是CSS兼容性方面。

2.5 避坑指南

我曾经踩过的坑:

  • 浏览器版本不匹配: 有次我手动更新了系统Chrome,结果Playwright报错。后来发现Playwright用的是自己下载的浏览器,和系统浏览器没关系。所以别手动更新Playwright的浏览器,用 playwright install 统一管理。
  • headless模式看不到界面: 调试时记得设置 headless=False,不然你都不知道浏览器在干嘛。
  • 中文输入问题: 启动浏览器时加上 locale='zh-CN' 参数,可以避免很多中文显示问题。

嗯,环境搭建这块就这些内容。说白了,只要按步骤来,十分钟就能搞定。下一章咱们开始写真正的自动化脚本,到时候你会觉得——原来这么简单。