You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pytest中如何全局设置Playwright默认超时时间?

Playwright Python 全局配置超时的两种方法

方法一:通过 pytest.ini 全局配置

直接在项目根目录的pytest.ini文件中添加Playwright相关超时参数,覆盖默认值。常用配置项包括:

  • playwright_goto_timeout:页面跳转超时(对应page.goto的超时设置)
  • playwright_action_timeout:元素操作超时(如click、fill等交互操作的超时)
  • playwright_navigation_timeout:导航类操作的通用超时

示例pytest.ini内容:

[pytest]
playwright_goto_timeout = 6000
playwright_action_timeout = 6000

方法二:通过 pytest Fixture 全局配置

如果需要更灵活的场景化控制,可以在conftest.py中定义fixture,修改browser_context或page的默认超时属性:

方式1:修改浏览器上下文的默认超时

import pytest
from playwright.sync_api import BrowserContext

@pytest.fixture(scope="session")
def context(browser):
    context: BrowserContext = browser.new_context()
    # 设置全局操作超时
    context.set_default_timeout(6000)
    # 单独设置跳转超时(若需与操作超时区分)
    context.set_default_navigation_timeout(6000)
    yield context
    context.close()

方式2:直接修改page对象的默认超时

import pytest
from playwright.sync_api import Page

@pytest.fixture(scope="function")
def page(context):
    page: Page = context.new_page()
    page.set_default_timeout(6000)
    page.set_default_navigation_timeout(6000)
    yield page
    page.close()

配置完成后,page.goto(url)、page.get_by_label(...).click()这类操作会自动使用全局设置的6000ms超时,无需再单独传递timeout参数。

内容的提问来源于stack exchange,提问作者MortenB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:22:01