确认没有网络问题和环境问题,
直接 使用
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 但是 就是没能想明白