PlayWright(三)- 同步和异步运行

2023-10-17 09:57:39 浏览数 (2)

1、异步概念

上文中,我们使用同步运行方式操作了playwright,那同步和异步究竟什么意思呢?

同步:发送一个请求,等待返回,然后再发送下一个请求

异步:发送一个请求,不等待返回,随时可以再发送下一个请求

通俗来说:同步只能按执行顺序执行,异步可以不按顺序执行

在讲异步之前,我们再来讲另一种运行方式,之前我们使用start,stop来运行,还有一种with方式

2、with语句是什么?

官方解释很复杂,我们不需要看,只需知道有些任务,我们需要事先设置,事后清理,这种场景我们可以使用with语句,可以让代码更简练,并且语句出现异常时,清理工作也更简单

看一个简单例子:

代码语言:javascript复制
file = open('1.txt')    # 打开1.txt的文件
data = file.read()      # 读取打开的文件到data中
file.close()            # 关闭文件

这是一个处理的文件的简单操作,这个操作可能会有两个问题:

1、忘记关闭文件

2、语句有异常,未做处理

我们用with语句

代码语言:javascript复制
with open('1.txt') as file:
    data = file.read()

代码简洁还会自动关闭

3、with启动playwright

代码语言:javascript复制
with sync_playwright() as playwright:  # 省略了start启动
    browser = playwright.chromium.launch(headless=False, slow_mo=5000)  # 设置了每步等待时间为3s
    page = browser.new_page()  # 打开一个页面
    page.goto('https://www.baidu.com/')  # 打开百度地址
    browser.close()  # 省略了关闭playwright对象    

在看下之前用start和stop的启动方式

代码语言:javascript复制
from playwright.sync_api import sync_playwright         # 先导包
playwright = sync_playwright().start()                  # 创建playwright对象
browser = playwright.chromium.launch(headless=False)    # 启动谷歌浏览器赋值给对象
page = browser.new_page()              # 打开一个页面
page.goto('https://www.baidu.com/')    # 打开百度地址
browser.close()                        # 关闭浏览器对象
playwright.stop()                      # 关闭playwright对象释放资源

清晰明了,下节我们看异步运行

0 人点赞