Python中Playwright模块进行自动化测试的实现

playwright是由微软开发的Web UI自动化测试工具,支持Node.js、Python、C# 和 Java语言,本文将介绍Python版本的Playwright使用方法。

微软开源了一个非常强大的自动化项目叫playwright-python,项目地址:https://github.com/microsoft/playwright-python 

它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合 Pytest 测试框架使用,并且支持浏览器端的自动化脚本录制。

Playwright提供的自动化技术是绿色的、功能强大、可靠且快速,支持Linux、Mac以及Windows操作系统。

官网:https://playwright.dev/ 

从官网的解释,官方给Playwright定位是一款真正意义上的Web端到端测试工具。

安装步骤

第 1 步,安装 playwright-python 依赖库 (需要注意的是,playwright库需要依赖Python3.7+以上)

1

pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade Playwright

 

第 2 步,安装主流的浏览器驱动

1

playwright install

如果想查看Playwright支持的功能, 可以直接在命令行输入:playwright -h

使用Playwright可以无需写代码,只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。

录制脚本

1. 查看录制命令说明 playwright codegen -h

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

Usage: playwright codegen [options] [url]

open page and generate code for user actions

Options:

  -o, --output <file name>             saves the generated script to a file

  --target <language>                  language to generate, one of javascript, playwright-test, python, python-async,

                                       python-pytest, csharp, csharp-mstest, csharp-nunit, java (default: "python")

  --save-trace <filename>              record a trace for the session and save it to a file

  --test-id-attribute <attributeName>  use the specified attribute to generate data test ID selectors

  -b, --browser <browserType>          browser to use, one of cr, chromium, ff, firefox, wk, webkit (default:

                                       "chromium")

  --block-service-workers              block service workers

  --channel <channel>                  Chromium distribution channel, "chrome", "chrome-beta", "msedge-dev", etc

  --color-scheme <scheme>              emulate preferred color scheme, "light" or "dark"

  --device <deviceName>                emulate device, for example  "iPhone 11"

  --geolocation <coordinates>          specify geolocation coordinates, for example "37.819722,-122.478611"

  --ignore-https-errors                ignore https errors

  --load-storage <filename>            load context storage state from the file, previously saved with --save-storage

  --lang <language>                    specify language / locale, for example "en-GB"

  --proxy-server <proxy>               specify proxy server, for example "http://myproxy:3128" or

                                       "socks5://myproxy:8080"

  --proxy-bypass <bypass>              comma-separated domains to bypass proxy, for example

                                       ".com,chromium.org,.domain.com"

  --save-har <filename>                save HAR file with all network activity at the end

  --save-har-glob <glob pattern>       filter entries in the HAR by matching url against this glob pattern

  --save-storage <filename>            save context storage state at the end, for later use with --load-storage

  --timezone <time zone>               time zone to emulate, for example "Europe/Rome"

  --timeout <timeout>                  timeout for Playwright actions in milliseconds, no timeout by default

  --user-agent <ua string>             specify user agent string

  --viewport-size <size>               specify browser viewport size in pixels, for example "1280, 720"

  -h, --help                           display help for command

Examples:

  $ codegen

  $ codegen --target=python

  $ codegen -b webkit https://example.com

比如,我要在baidu.com搜索,用chromium驱动,将结果保存为test.py的python文件。文档默认保存到 C:\Users\user\下面

1

playwright codegen --target python -o 'test.py' -b chromium https://www.baidu.com

 

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

使用 PlaywrightPython 可以方便地进行自动化测试。以下是一个简单示例,演示如何使用 Playwright 进行浏览器自动化测试: 1. 安装 PlaywrightPython: 在命令行运行以下命令来安装 PlaywrightPython: ``` pip install playwright ``` 2. 初始化 Playwright: 在命令行运行以下命令来初始化 Playwright: ``` playwright install ``` 3. 编写测试脚本: 创建一个 Python 脚本,并导入所需的模块和类: ```python from playwright.sync_api import sync_playwright def test_example(): with sync_playwright() as playwright: browser = playwright.chromium.launch() context = browser.new_context() page = context.new_page() # 打开网页 page.goto('https://www.example.com') # 在文本框输入内容 page.fill('input[name="q"]', 'Playwright') # 点击搜索按钮 page.click('button[type="submit"]') # 等待搜索结果加载完毕 page.wait_for_load_state() # 断言页面标题是否包含关键字 assert 'Playwright' in page.title() # 关闭浏览器 context.close() browser.close() if __name__ == '__main__': test_example() ``` 在上述代码,我们使用 Playwright 启动 Chromium 浏览器,创建一个新的页面,并在页面上执行一系列操作,包括打开网页、填充文本框、点击按钮、等待加载和断言页面标题。最后关闭浏览器。 4. 运行测试脚本: 在命令行运行以下命令来执行测试脚本: ``` python test_script.py ``` 这将启动浏览器并执行测试脚本的操作。如果一切正常,你将看到测试结果输出。 这只是一个简单的示例,Playwright 还提供了更多功能和 API,例如处理表单、截图、模拟用户行为等。你可以查阅 Playwright 的官方文档以了解更多详细信息和示例代码。希望这个示例能帮助你入门 PlaywrightPython 自动化测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值