首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在playwright-python代码运行结束时保持浏览器的打开状态?

如何在playwright-python代码运行结束时保持浏览器的打开状态?
EN

Stack Overflow用户
提问于 2021-01-20 11:30:14
回答 1查看 1.3K关注 0票数 2

我想使用playwright-python自动填写一些表单。然后在提交前仔细检查填充物。但它总是在代码运行结束时关闭浏览器。即使我使用了handleSIGHUP=False, handleSIGINT=False, handleSIGTERM=False启动参数,并且没有在代码中使用任何page.close()browser.close(),它仍然会在代码完成后关闭浏览器。

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 22:34:44

浏览器是由python脚本启动的,所以它将在脚本结束时结束。

所以你需要保持脚本的活力。

对于异步部分来说,这有点棘手。我假设你有相同的类型:asyncio.get_event_loop().run_until_complete(main())

因此,在异步main例程中,您需要保持异步循环运行:

例如,等待键盘:

代码语言:javascript
运行
复制
import asyncio
from playwright.async_api import async_playwright
from playwright.async_api import Page

async with async_playwright() as p:
    async def main(run_forever: bool):
        browser = await p.__getattribute__(C.BROWSER.browser).launch(headless=False, timeout=10000)
        page = await browser.new_page()
        if run_forever:
            print('Press CTRL-D to stop')
            reader = asyncio.StreamReader()
            pipe = sys.stdin
            loop = asyncio.get_event_loop()
            await loop.connect_read_pipe(lambda: asyncio.StreamReaderProtocol(reader), pipe)
             async for line in reader:
                 print(f'Got: {line.decode()!r}')
        else:
            browser.close()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65802677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档