【Playwright+Python】系列教程(一)环境搭建及脚本录制 ...

曹旭辉  金牌会员 | 2024-6-18 23:23:07 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 835|帖子 835|积分 2505

一、前言

看到这个文章,有的同学会说:
六哥,你为啥不早早就写完python系列的文章。
由于有徒弟必要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧!
如果对你有用,发起收藏和转发!
二、Playwright是什么?

微软开源自动化测试工具Playwright,支持主流浏览器,包罗:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以联合 主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。
特点:

  • 跨浏览器:Playwright 支持全部现代渲染引擎,包罗Chromium、WebKit 和 Firefox;
  • 跨平台:在 Windows、Linux 和 MacOS 上举行本地或 CI、无头或有头测试;
  • 跨语言:在 TypeScript、JavaScript、Python、.NET、Java 中使用Playwright API;
  • 测试移动网络:实用于 Android 和 Mobile Safari 的 Google Chrome 原生移动仿真。相同的渲染引擎实用于您的桌面和云端。
官网地址:
https://playwright.dev
GitHub地址:
https://github.com/microsoft/playwright
普通的讲:
就是一款主流的自动化测试工具,可以跨平台、跨语言、开源、支持分布式、拥有成熟的社区及学习文档,主要用于接口和web自动化测试。
三、开发环境搭建

1、系统要求:


  • Python 3.8 or higher. Python 3.8 或更高版本。
  • Windows 10+, Windows Server 2016+ or Windows Subsystem for Linux (WSL). Windows 10+、Windows Server 2016+ 或实用于 Linux 的 Windows 子系统 (WSL)。
  • MacOS 12 Monterey, MacOS 13 Ventura, or MacOS 14 Sonoma. MacOS 12 Monterey、MacOS 13 Ventura 或 MacOS 14 Sonoma。
  • Debian 11, Debian 12, Ubuntu 20.04 or Ubuntu 22.04. Debian 11、Debian 12、Ubuntu 20.04 或 Ubuntu 22.04。
2、安装依赖

安装 Pytest 插件:
  1. pip install pytest-playwright
复制代码
安装所需的浏览器:
  1. playwright install
复制代码
3、示例程序

打开首页并截图,示例代码如下:
  1. # -*- coding: utf-8 -*-
  2. # @Time    : 2024/06/18 22:26
  3. # @Author  : longrong.lang
  4. # @FileName: test_demo.py
  5. # @Software: PyCharm
  6. # @Cnblogs :https://www.cnblogs.com/longronglang
  7. # @Motto:你只管努力,剩下的交给天意.
  8. import re
  9. from playwright.sync_api import Page, expect
  10. def test_has_title(page: Page):
  11.     page.goto("https://playwright.dev/")
  12.     # Expect a title "to contain" a substring.
  13.     expect(page).to_have_title(re.compile("Playwright"))
  14. def test_get_started_link(page: Page):
  15.     page.goto("https://playwright.dev/")
  16.     # Click the get started link.
  17.     page.get_by_role("link", name="Get started").click()
  18.     # Expects page to have a heading with the name of Installation.
  19.     expect(page.get_by_role("heading", name="Installation")).to_be_visible()
复制代码
运行结果:

image.png
阐明: 默认情况下,测试将在 chromium 上运行。这可以通过 CLI 选项举行配置。测试在无外设模式下运行,这意味着在运行测试时不会打开浏览器 UI。测试结果和测试日记将显示在终端中。
4、更新Playwright

pip install pytest-playwright playwright -U
四、脚本录制

和很多自动化测试工具一样,Playwright也是可以录制并天生脚本的。 那么接下来将演示如何举行脚本的录制(我个人是不喜欢录制的),此处操作只为有必要的人。 由于之前做的electron桌面应用环境开发,依赖node.js运行环境,而Playwright也是完美支持node. js,那我将用node环境给大家演示。
1、如何录制

使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动天生代码脚本。
输入如下下令,开启录制 如下所示:
  1. playwright codegen  https://www.cnblogs.com/longronglang (测试的网址)
复制代码
在target中选择你必要的语言和框架:
这里以Pytest为例,如下所示:

操作中会有页面相关定位提示,点击结束录制,并复制天生脚本,如下所示:

关于元素定位,可以用自带的验证工具验证元素定位表达式,如下图所示:

image.png
2、天生脚本

天生代码如下所示:
  1. # -*- coding: utf-8 -*-
  2. # @Time    : 2024/06/18 22:26
  3. # @Author  : longrong.lang
  4. # @FileName: test_demo.py
  5. # @Software: PyCharm
  6. # @Cnblogs :https://www.cnblogs.com/longronglang
  7. # @Motto:你只管努力,剩下的交给天意.
  8. import re
  9. from playwright.sync_api import Page, expect
  10. def test_example(page: Page) -> None:
  11.     page.goto("https://www.cnblogs.com/longronglang")
  12.     page.locator("#main-header div").nth(1).click()
  13.     page.locator(".onOff").click()
  14.     page.locator("#main-header div").nth(1).click()
  15.     page.locator("div:nth-child(6)").first.click()
  16.     page.get_by_text("久曲健的测试窝").click()
  17.     page.get_by_text("久曲健的测试窝").click(button="right")
  18.     page.get_by_text("我知道了").click()
  19.     page.get_by_role("heading", name="青春的土壤中,只有记忆是潮湿的。").click()
  20.     page.get_by_text("久曲健的测试窝").click()
  21.     page.get_by_text("久曲健的测试窝").click()
  22.     page.get_by_text("久曲健的测试窝").click()
  23.     page.locator("#main-header div").nth(1).click()
  24.     expect(page.locator("#homeTopTitle")).to_contain_text("久曲健的测试窝")
  25.     page.get_by_role("heading", name="青春的土壤中,只有记忆是潮湿的。").click()
复制代码
阐明: 从上面可以看到,录制的工具也很好用,详细用法参考https://playwright.dev/python/docs/codegen-intro
回放脚本如下所示:

image.png
这个框架执行速度有些慢,初次运行比力耗时,其他感觉还好。
到此关于Playwright开发环境搭建及脚本的录制已完成,有兴趣的同学可以自行尝试。
五、写在末了

有的时间,你的一时想法,真的剧烈发起你记录下来,如果以为它是有意义的,那么就什么都不要去想,干就完了!
末了,分享一句李尚龙的一句话,你只是看起来很积极,你所谓的稳固不过是浪费生命!
形式上的积极,并没有什么用,打卡什么的也不过于自我安慰,真正的强者,已经都开始举措起来了,不是吗?
如果你苦于找不到同学一起学习来,来加我好友,我们有学习群,来一起当同学好么!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表