playwright报错:“Event loop is closed! Is Playwright already stopped?”

这句话的意思其实很直白,playwright已经被关闭。

1请检查你的程序逻辑是不是提前进行了close操作

page.close()

⭐️「更可能的情况」2.检查是否错误的把sync_playwright()语句写到了函数里或者类里

也就是这一句

 with sync_playwright() as p:

请看示例


def a():
    with sync_playwright() as playwright:
        browser = playwright.chromium.launch(headless=False)
        page = browser.new_page()
        return page

if __name__ == '__main__':
    #main()
    a().goto("https://baidu.com")

输出报错信息

raise Error(“Event loop is closed! Is Playwright already stopped?”)
playwright._impl._errors.Error: Event loop is closed! Is Playwright already stopped?

解决方案——把with语句放到main里,产生的playwright对象作为参数传入函数


def a(indicator):
        browser = indicator.chromium.launch(headless=False)
        page = browser.new_page()
        return page

if __name__ == '__main__':
    with sync_playwright() as playwright:
        a(playwright).goto("https://baidu.com")

后记:
其实很好理解。当函数退出的时候,playwright对象也就被回收
这里也可以不用with,用实例化sync_playwright()的方式配合close语句。(回忆一下with open)具体可以自行查阅资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值