Python playwright自动化入门

简介

Playwright是微软开源的一个UI自动化测试工具。添加了默认等待时间增加脚本稳定性,并提供录制、网络请求支持、自定义的定位器、自带调试器等新特性。

优势

(1)支持同步和异步

(2)安装简单,不需要手动下载浏览器驱动

(3)新增了文字定位元素,同时也兼容支持传统的css和xpath定位

(4)支持无头浏览器模式

(5)通过录制功能自动生成代码,将生成的代码进行简单的修改就可以实现业务自动化

1.安装

环境要求:

  • liunx 系统版本:官方仅支持 Ubuntu 18.04 和 Ubuntu 20.04
  • windows 系统版本:官方推荐 10.14 以上
  • Python 版本:3.7以上,推荐使用3.8或者3.10版本的Python

在Python中要使用Playwright直接用pip命令安装即可,pip命令如下:

pip install --upgrade pip
pip install playwright
playwright install

这些命令下载 Playwright 包并为 Chromium、Firefox 和 WebKit 安装浏览器二进制文件。要修改此行为,请参阅安装参数

2.编写第1个脚本

安装完成以后,便可以在Python脚本中通过import语句导入Playwright进行自动化程序的编写了。Playwright支持启动3种浏览器,分别为:chromium、firefox和webkit。读者可根据自身喜好进行选择。接下来,笔者演示编写一段简单的代码实现控制chromium浏览器并打开百度首页,然后获取其页面源码中的title属性值打印在python控制台。示例代码如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://www.baidu.com/")
    print(page.title())
    browser.close()

运行代码后输出结果如图1所示。

图1 

需要注意的是,运行此段代码时,并没有弹出浏览器的界面就直接输出了内容,这是因为默认情况下,Playwright 以无头模式运行浏览器。要查看浏览器 UI,需要在启动浏览器时传递 headless=False 参数,如下例代码所示:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=50)
    page = browser.new_page()
    page.goto("https://www.baidu.com/")
    print(page.title())
    browser.close()

再次运行代码就会弹出浏览器窗口,如图2所示。

图2 

Playwright 支持同步和异步两种方式运行代码,如果我们的项目中有用到 asyncio 库,可通过以下示例实现异步执行。

import asyncio
from playwright.async_api import async_playwright

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

3.录制

playwright 相对于 selenium 来说,最大的一个亮点就是可以通过录制功能自动生成代码,不需要手动编写一句代码就能实现完整的自动化操作流程。这里笔者以演示一个自动打开百度首页,然后在百度搜索框里面输入一个关键词并点击搜索按钮的流程,步骤如下:

步骤1:在 cmd 命令行中输入命令,格式为:playwright codegen 目标网站网址,笔者这里输入的是:playwright codegen https://www.baidu.com 如图3所示。

图3 

步骤2:敲下回车键执行,此时会弹出浏览器窗口和一个代码录制窗口,如图4所示。

 图4

步骤3:接下来,在百度搜索框中输入一个关键词,并点击搜索按钮,此时在右边的代码录制窗口里面就会自动生成整个搜索动作的代码,如图5所示。

图5

步骤4:点击代码录制窗口左上角红色字体的 Record 按钮可停止录制或者暂停/重新打开录制。如图6所示。

图6

步骤5:全选复制生成好的代码,粘贴到新建的python文件中,直接运行即可实现录制好的动作效果。

内容未完,2022-06-23 日会继续更新

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小牛牛先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值