我们来看下异步运行 PlayWright
1、异步的概念
异步举例来讲下:
小明在家需要完成如下事情:
- 电饭锅煮饭大约30分钟
- 洗衣机洗衣服大约40分钟
- 写作业大约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())