gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:21:39 33 4
gpt4 key购买 nike

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

有人知道怎么做吗?

最佳答案

浏览器是由python脚本启动的,所以它会在脚本结束时结束。
所以你需要让脚本保持事件状态。
对于异步部分,它有点棘手。我假设你有同样的:asyncio.get_event_loop().run_until_complete(main())

所以在异步主例程中你需要保持异步循环运行:

例如等待键盘:

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()

关于playwright-python - 如何在使用 playwright-python 运行的代码结束时保持浏览器打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65802677/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com