PlayWright(四)- 深入异步

2023-10-17 09:58:02 浏览数 (2)

我们来看下异步运行 PlayWright

1、异步的概念

异步举例来讲下:

小明在家需要完成如下事情:

  1. 电饭锅煮饭大约30分钟
  2. 洗衣机洗衣服大约40分钟
  3. 写作业大约50分钟

在同步情况下:小明需要电饭锅处等待30分钟、洗衣机处等待40分钟、写作业50分钟,总计花费时间120分钟。 在异步情况下:小明需要电饭锅处理并启动花费10分钟、洗衣机处理并启动花费10分钟,写作业花费50分钟,总计花费时间70分钟。

同步需要按照顺序执行,等结束之后再执行下一个

异步可以上件事没结束就处理另一件事

2、asyncio异步协程

asyncio是python用来处理并发的一个包,我们的异步运行需要这个包

先导入

代码语言:javascript复制
import asynico

并且在python3.5后我们都用async/await来实现协程

异步函数

代码语言:javascript复制
async def haha():  # async前缀异步函数
    return 1

我们直接调用异步函数haha()会报错

我们可以使用异步调用

代码语言:javascript复制
import asyncio

async def haha():  # async前缀异步函数
    return 1
asyncio.run(haha())

使用异步调用就不会报错了

那await怎么使用呢

可以在操作前放入前缀 await,意思可以挂起自身的协程,然后等待这步操作完成,然后接着运行

3、异步运行playwright

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


async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        await page.goto("https://www.baidu.com/")
        print(await page.title())
        await browser.close()

# 调用函数
asyncio.run(main())

0 人点赞