确认没有网络问题和环境问题,

直接 使用

 from playwright.async_api import async_playwright, Playwright
@pytest.mark.asyncio
async def test_home_page_loading22():
    p = await async_playwright().start()
# browser = await p.chromium.launch(headless=False, devtools=True)
    chromium = p.chromium # or "firefox" or "webkit".
    browser = await chromium.launch()
    page = await browser.new_page()
    await page.goto("https://www.baidu.com")
# other actions...
    await browser.close()

这个 case 可以执行成功,await page.goto("https://www.baidu.com") 可以正常完成

但是 在 conftest.py 简单封一层 fixture

@pytest.fixture(scope="session")
async def browser():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=False)  # 可根据需要配置启动参数
        yield browser
        await browser.close()

@pytest.fixture
async def page(browser) -> AsyncGenerator:
    context = await browser.new_context()
    page = await context.new_page()
    yield page
    await context.close()

在 test_home.py

@pytest.mark.asyncio
async def test_home_page_loading(page):
    """测试首页加载"""
    await page.goto("https://www.baidu.com/")

这里 await page.goto("https://www.baidu.com") 代码就一直阻塞在这里,但是实际情况是已经执行完成了,这个在 UI 操作上是可以看到的。
问了 DS GPT. 都没能解答,自己感觉问题可能就在 yield 但是 就是没能想明白😂 😂 😂


↙↙↙阅读原文可查看相关链接,并与作者交流