在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
相关产品推荐
相关产品推荐

