本文目录导读:

Python UI 自动化不一定要用 pytest-selenium,现在更主流的选择是 pytest + Selenium 或 pytest + Playwright。
推荐方案对比
pytest + Selenium(最主流)
# 直接使用 pytest + selenium,不安装 pytest-selenium
import pytest
from selenium import webdriver
class TestLogin:
def setup_method(self):
self.driver = webdriver.Chrome()
def teardown_method(self):
self.driver.quit()
def test_login_success(self):
self.driver.get("https://example.com/login")
# 测试逻辑...
优点:
- 灵活可控,不依赖框架绑定
- 可以自由选择 fixture 管理
pytest-selenium(已较少使用)
pip install pytest-selenium
# 使用 pytest-selenium 提供的 fixture
def test_example(selenium):
selenium.get("https://example.com")
assert selenium.title == "Example"
缺点:
- 项目已不活跃,更新缓慢
- 功能有限,不如直接使用 pytest fixture 灵活
- 对 Selenium 4 支持不完善
更推荐的方案
方案 A:pytest + Selenium(自定义 fixture)
# conftest.py
import pytest
from selenium import webdriver
@pytest.fixture
def driver():
driver = webdriver.Chrome()
driver.maximize_window()
yield driver
driver.quit()
# test_demo.py
def test_search(driver):
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("pytest")
方案 B:pytest + Playwright(推荐新项目使用)
# 更现代、更快、更稳定
import pytest
from playwright.sync_api import Page
def test_example(page: Page):
page.goto("https://example.com")
assert page.title() == "Example"
实际项目建议
对于老项目/团队习惯 Selenium:
# 安装 pip install pytest selenium webdriver-manager
# 使用 webdriver-manager 自动管理驱动
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
@pytest.fixture
def driver():
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
yield driver
driver.quit()
对于新项目:
强烈推荐 Playwright:
- 速度更快(异步非阻塞)
- 自动等待元素
- 更好的截图/视频录制
- 跨浏览器支持更好
pip install pytest-playwright playwright install
| 方案 | 推荐度 | 说明 |
|---|---|---|
| pytest-selenium | ❌ 不推荐 | 过时,维护不活跃 |
| pytest + Selenium | 适合老项目,需要自己封装 | |
| pytest + Playwright | 新项目首选,更现代更稳定 |
我的建议:除非团队已有大量 Selenium 代码,否则新项目直接选择 pytest + Playwright,开发效率和稳定性都更好。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播