iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python playwrigh框架入门安装使用
  • 196
分享到

python playwrigh框架入门安装使用

2024-04-02 19:04:59 196人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言优势举个栗子安装入门篇安装前言 这是一篇罗里吧嗦的前言,可能更多的属于个人的感慨以及吐槽。 首先打个广告:你每天点点点累么?面对越来越卷的环境你彷徨么?被要求 2 天做一个系

前言

这是一篇罗里吧嗦的前言,可能更多的属于个人的感慨以及吐槽。

首先打个广告:你每天点点点累么?面对越来越卷的环境你彷徨么?被要求 2 天做一个系统全面回归测试的你感到孤单无助么?你在加班的深夜会以泪洗面么?如果你或者你的测试朋友有上述症状,那么不要害怕,playwright 解救不开心,写 UI 自动化再也不用 F12+ 复制 XPATH 然后 1 天后又在改了。

确实很久没弄过 UI 自动化了,本身 Xpath 确实写的也不是太好。外加之前弄过两次 UI 自动化均因为后期维护成本降不下来放弃掉了所以最近听到 UI 就直接摆烂了,一直在折腾接口这条路上躺平,但是机缘巧合前 2 个月我们招 WEB 开发我无意间发现现在 WEB 开发工程师居然在写 UI 自动化。。。。。 好卷啊怀着一颗好奇的心我搜了下这个叫 playwrigh 的框架~~~ 摆弄了 2 个月感觉还是有点意思 而且应该属于微软的 vscode 那类而不是 windows 或者 IE 这类。

优势

  • 支持语言 python java node.js .net(之前也试过 cypress,但这边测试团队不是以 js 为主的,放弃)
  • 定位方式上限很高,更面向业务(UI 最初的麻烦就是定位不到,最终麻烦是下次定位不到)
  • 自动等待方式使脚本执行更快、更稳定、代码量更少(不用各种 time.sleep 或者显示等待)
  • 支持 windows linux Macos 运行浏览器驱动程序(Macos 可用~ 易用 linux 做 CI)
  • 不需要维护 driver 文件,从此告别浏览器一升级就得看版本然后下 driver 的痛苦。
  • 除了 UI 自动化之外也可以做接口自动化测试,甚至可以基于 UI 页面发送接口请求(继承权限),如果先保证了接口没问题用这个做前置和断言也是不错的。
  • 已经有 pytest 插件,轮子较多,支持截屏、录制用例执行等。
  • 根据介绍有 VueReact 选择器,不过仍在测试阶段,万一测试成功了估计还是有点东西。
  • 自身支持同步和异步操作。 10、 支持持久上下文,缩短执行时间,也可把 cookie 或者 localstorge 保存本地,启动时读取使用。

举个栗子

就直接把自己 pytest 的一个新增的 case 脱敏后拿出来看下吧

def test_add(page): 
    try: 
        page.Goto("https://xxxxxxx:1111/index") 
        page.locator("'一级菜单'").click() 
        page.locator("'二级菜单'").click() 
        page.locator("'三级菜单'").click() 
        page.wait_for_timeout(5000)
        page.locator("button:has-text('新增')").click() 
        page.locator("textarea:right-of(:text('XXXX'))").fill('模板123') 
        with page.expect_file_chooser() as fc_info: 
            page.locator("text=click to upload").click() 
        file_chooser = fc_info.value 
        file_chooser.set_files("upload/upload1.xls") 
        page.fill("input:right-of(:text('日期'))",'2004-09-26') 
        page.locator("'日期'").click() 
        page.fill("input:right-of(:text('时间'))",'01:21:56') 
        page.press("input:right-of(:text('时间'))",'Enter') 
        page.locator("button:has-text('确认')").click() 
        page.wait_for_load_state('networkidle') 
        assert assert_api('add') == True 
        page.screenshot(path='temp_data\\screenshot\\res.png', full_page=True) 
        allure.attach.file('temp_data\\screenshot\\res.png', 'temp_data\\screenshot\\res.png', attachment_type=allure.attachment_type.PNG) 
    except:
        page.screenshot(path='temp_data\\screenshot\\res_fail.png', full_page=True) 
        allure.attach.file('temp_data\\screenshot\\res_fail.png', 'temp_data\\screenshot\\res_fail.png', attachment_type=allure.attachment_type.PNG) 
        raise 

首先最大的区别就是原来真的可以不用 Xpath 完成 UI 自动化的编写 哈哈哈 真的对一长串又难维护又读不懂的 xpath 深恶痛绝啊。直接肉眼可见的 text 定位简直太开心。

其次其实最终让我决定用这个框架的主要就是一个功能,页面布局定位 比如我们先看对比下图和这句代码看一下 page.locator("input:right-of(:text('XXXX'))").fill('模板 123')

经过我产品经理级别精心的绘画不难看出,这是一个管理系统很常见的 dialog 弹窗,它存在若干个输入框以及一个下拉框以及确认、取消按钮。

我们做 UI 自动化的时候很常见的操作就是要去 XXXX 右边的输入框中输入内容,或者在 ZZZZ 这个下拉框中选择。如果是 selenium 那么还是有点啰嗦,但是 playwright 自身有的布局定位器(根据某个元素定位/操作他上下左右的元素)这个事情就很简单了。 page.locator("input:right-of(:text('XXXX'))").fill('模板 123') 对文本 XXXX 右侧的输入框输入模板 123。搞定!从此不管是这个 XXXX 的顺序调整了还是什么

别的变了只要

1、XXXX 这个文本没有变化

2、input 输入框在 XXXX 的右边

这句代码就无须维护。

再次 随着现在功能要求的变化,元素也都在变 比如现在很少能看到简单纯粹的 select 和 upload 了,新框架这部分支持会更好比如代码段里的文件上传部分代码

with page.expect_file_chooser() as fc_info: 
       page.locator("text=click to upload").click() 
file_chooser = fc_info.value 
file_chooser.set_files("upload/upload1.xls") 

简单的搞定了 el-upload 类型的文件上传控件。

也啰嗦了这么多,有兴趣的同学可以继续~~ 看到这还是觉得 就这? 的同学也可以 X 了~

参考资料

官网: Https://playwright.dev/Python/docs/intro

GitHub:https://github.com/microsoft/playwright-python

安装入门篇

因为我最熟悉的语言是 python,所以就只讲 python 的了

安装

#升级pip
pip install --upgrade pip
#安装playwright模块
pip install playwright
#安装主流浏览器依赖,时间可能较久
playwright install

同步 demo

from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("http://playwright.dev")
    print(page.title())
    browser.close()

异步 demo

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("http://playwright.dev")
        print(await page.title())
        await browser.close()
asyncio.run(main())

好了,完结 撒花本篇完结,下篇开始具体细节开始展开说说如果等不及的小伙伴建议直接看官网吧,这个框架的资料确实少。虽然官网只有英文,但是网易有道词典 yyds,更多关于python playwrigh框架的资料请关注编程网其它相关文章!

--结束END--

本文标题: python playwrigh框架入门安装使用

本文链接: https://www.lsjlt.com/news/119559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python playwrigh框架入门安装使用
    目录前言优势举个栗子安装入门篇安装前言 这是一篇罗里吧嗦的前言,可能更多的属于个人的感慨以及吐槽。 首先打个广告:你每天点点点累么?面对越来越卷的环境你彷徨么?被要求 2 天做一个系...
    99+
    2024-04-02
  • python脚本框架webpy入门安装及应用创建
    目录一:安装二:URL 处理三:类四:创建一个应用五:实例一:安装 pip install web.py 或者 http://xiazai.jb51.net/202111/y...
    99+
    2024-04-02
  • spark入门框架+python
    目录: 简介 pyspark IPython Notebook 安装 配置 spark编写框架: 首先开启hdfs以及yarn 1 sparkconf 2 sparkcontext 3 RDD(核心) 4 transformation(核...
    99+
    2023-01-31
    框架 入门 spark
  • Python爬虫框架scrapy入门指
    想爬点数据来玩玩, 我想最方便的工具就是Python scrapy了。 这框架把采集需要用到的功能全部封装好了,只要写写采集规则,其他的就交给框架去处理,非常方便,没有之一,不接受反驳。:) 网上学习资源非常丰富,我这里介绍下我的学习方法...
    99+
    2023-01-31
    爬虫 框架 入门
  • python爬虫框架Scrapy怎么安装使用
    这篇文章主要介绍了python爬虫框架Scrapy怎么安装使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python爬虫框架Scrapy怎么安装使用文章都会有所收获,下面我...
    99+
    2024-04-02
  • python爬虫入门之Scrapy框架怎么用
    这篇文章将为大家详细讲解有关python爬虫入门之Scrapy框架怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P...
    99+
    2023-06-14
  • 如何入门Python Scrapy爬虫框架
    如何入门Python Scrapy爬虫框架,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Scrapy概述Scrapy是Python开发的一个非常流行的网络爬虫框架,可以用来...
    99+
    2023-06-02
  • Golang中Gin框架的使用入门教程
    目录安装与简单测试常见请求与分组请求获取参数 与 参数合法性验证获得query中参数获得multipart/urlencoded form中的参数模型绑定和参数验证自定义参数验证项目...
    99+
    2024-04-02
  • .NET Core使用APB vNext框架入门教程
    目录快速入门案例.NET Core 控制台应用1. 安装 ABP 框架核心依赖2. 新建 ABP 应用的启动模块3. 新建服务,并注册到启动模块中4. 根据启动模块创建 ABP应用,...
    99+
    2024-04-02
  • Python Flask框架模块怎么安装及使用
    这篇文章主要介绍“Python Flask框架模块怎么安装及使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python Flask框架模块怎么安装及使用”文章能帮助大家解决问...
    99+
    2023-07-05
  • 【100天精通python】Day49:python web编程_web框架,Flask框架从安装到使用
    目录 1 Web 框架 2 python 中常用的web框架 3 Flask 框架的使用 3.1 Flask框架安装 3.2 第一个Flask程序 3.3 路由 3.3.1 基本路由 3.3.2 动态路由 3.3.3 HTTP 方法 3.3...
    99+
    2023-09-02
    python 前端 flask
  • Python定时任务框架APScheduler安装使用详解
    目录前言一、APscheduler简介二、APscheduler安装三、APscheduler组成部分1.Job 作业2.Trigger 触发器3.Jobstore 作业存储4.Ex...
    99+
    2024-04-02
  • react框架怎么安装和使用
    要安装和使用React框架,你需要按照以下步骤进行操作: 安装Node.js:React需要Node.js来运行和构建应用程序。...
    99+
    2023-10-27
    react
  • Zookeeper详解(从安装—入门—使用)
    Zookeeper详解(从安装—入门—简单使用) 🍋1.zookeeper概念🍋2.zookeeper的安装🍊2.1环境准备:🍊2.2下载🍊2.3上传并...
    99+
    2023-08-18
    zookeeper 服务器 java
  • python流水线框架pypeln的安装使用教程
    1. 安装和入门使用 安装pip install pypeln,基本元素如下: 2 基于multiprocessing.Process 这个是基于多进程。 import pyp...
    99+
    2024-04-02
  • jsp框架怎么安装和使用
    JSP(JavaServer Pages)是一种用于开发动态网页的技术,它可以让开发者在网页中嵌入Java代码。要使用JSP框架,首...
    99+
    2024-04-02
  • Python中Scrapy框架的入门教程分享
    目录前言安装Scrapy创建一个Scrapy项目创建一个爬虫运行爬虫结论前言 Scrapy是一个基于Python的Web爬虫框架,可以快速方便地从互联网上获取数据并进行处理。它的设计...
    99+
    2023-03-10
    Python Scrapy框架教程 Python Scrapy框架 Python Scrapy
  • Koa2框架快速入门与基本使用方式
    目录Koa2框架使用入门中间件与洋葱圈模型总结本篇我们讲一下 Koa2 框架的基本使用,希望能帮助大家快速上手 Koa2 是什么?简单来讲,它是一个基于 Node.js 的 web ...
    99+
    2023-03-24
    Koa2框架快速入门 Koa2框架基本使用 Koa2框架
  • python之django框架入门,看完你就会
    目录 1.创建Django项目  2.创建Django应用  3.定义ORM模型 4.创建并执行数据库迁移 5.定义视图函数 6.定义URL路由 7.编写模板 Django是一个基于Python的Web框架,它旨在提供开发人员一个高效而...
    99+
    2023-09-10
    django python 后端
  • Python Flask框架如何安装及应用
    本篇内容主要讲解“Python Flask框架如何安装及应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Flask框架如何安装及应用”吧!1.安装1.1 创建...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作