Python + Playwright(0):从零开始学习Playwright自动化框架

news2024/11/21 2:29:50

Python + Playwright(0):从零开始学习Playwright自动化框架

    • 简介
    • 一、官方文档
    • 二、安装
      • 安装要求
      • pip安装
    • 三、基本使用方法
      • 录制脚本
    • 四、代码示例
    • 结语

简介

  • Playwright 是一个强大的自动化库,由微软开发,主要用于web端的UI测试,支持Python、Java、JavaScript、C#等;
  • Playwright 仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,不仅支持无头模式和有头模式,还提供了代码录制功能,极大地提高了脚本编写效率,并且支持移动端自动化测试;
  • Playwright相比已有的自动化测试框架来说,具有很多优势,比如:
    跨浏览器,支持Chromium、Firefox、WebKit
    跨操作系统,支持Linux、Mac、Windows
  • Python(Git): https://github.com/microsoft/playwright-python

一、官方文档

想要深入了解Playwright的使用方法和API文档,可以访问以下链接:
官方文档:https://playwright.dev/python/docs/intro
API文档: https://playwright.dev/python/docs/api/class-playwright

二、安装

安装要求

在安装Playwright之前,请确保满足以下系统要求:

  • Python 3.7 或更高版本
  • Windows 10及以上版本,Windows Server 2016及以上版本,或Windows Subsystem for Linux (WSL)
  • MacOS 12 Monterey 或 MacOS 13 Ventura
  • Debian 11、Debian 12、Ubuntu 20.04 或 Ubuntu 22.04

pip安装

  • 安装playwright库
 pip install playwright
  • 安装浏览器驱动文件
 playwright install	

三、基本使用方法

录制脚本

Playwright提供了一个非常方便的功能 - 脚本录制。
通过以下命令,可以启动录制过程,并将录制的脚本保存为Python文件:

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

在这里插入图片描述

--target:规定生成脚本的语言
-o:将录制的脚本保存到一个文件
-b:指定浏览器驱动
在这里插入图片描述

四、代码示例

下面是一个使用Playwright进行百度搜索的简单代码示例:

import re
from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")

    # 这里可以添加更多的操作,例如搜索、点击等
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

代码解释:
from playwright.sync_api import Playwright, sync_playwright, expect:从Playwright的同步API模块导入三个主要的组件
Playwright:Playwright的主要类,用于创建和控制浏览器实例
sync_playwright:一个上下文管理器,用于创建和自动关闭Playwright实例
expect:一个用于断言的模块,可以检查页面的状态,确保测试的预期结果

playwright.chromium.launch(headless=False):启动Chromium浏览器,浏览器以有头模式运行

browser.new_context():创建一个新的浏览器上下文,隔离测试环境

context.new_page():在该上下文中打开一个新页面

page.goto("https://www.baidu.com/"):导航到百度首页,准备进行自动化操作

context.close():关闭当前浏览器上下文,释放相关资源

browser.close():关闭浏览器实例

结语

Playwright作为一个功能强大且易于使用的自动化测试框架,无论是对于初学者还是有经验的测试工程师,都是一个值得学习和使用的工具。通过本文的介绍,希望能帮助大家快速入门Playwright,并将其应用到实际的自动化测试工作中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1855047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会声会影2024永久破解和谐版下载 包含激活码序列号

亲爱的创作伙伴们,今天我要分享一个让我的影视编辑生活大放异彩的神器——会声会影2024破解版本!🎉🌟 🌈**功能全面升级**:作为一款专业的视频编辑软件,会声会影2024破解版本不仅继承了之前版本…

CRMEB-PHP多商户版安装系统配置清单

系统在安装完成之后,需要对系统进行一系列的配置,才能正常使用全部的功能,以下是官方整理的配置清单 平台后台 商户后台

Linux常用

很早以前的 ls: 查看文件夹内所有文件 rz: windows的文件传到linux服务器 sz filename: 将文件下载到windows本地 ctrlinsert:复制 shiftinsert:粘贴 ctrlD:退出spark-shell 运行脚本并输出日志 nohup sh filename.sh > log.log 2>&1 & 查看日…

计算机视觉解决什么问题?

本节课为「计算机视觉 CV 核心知识」第一节课正式课; 「AI秘籍」系列课程: 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 Hi,大家好。我是茶桁。 老同学对我应该都很熟悉了&#xff…

std::bind与std::ref配合使用时要注意的几个问题

目录 1 假如输入函数的变量是左值非常量引用,则该变量在std::bind中只能用std::ref修饰,不能用cref,否则编译失败: 2 假如输入函数的变量是左值常量引用,则该变量在std::bind中既可以用std::ref修饰,也可…

如何在 Mac 上清空硬盘后恢复丢失的数据?

如果您不小心从 Mac 硬盘上删除了重要文件,您可能会感到非常沮丧。但您仍然可以找回丢失的信息。将 Mac 想象成一个大盒子,里面装着所有东西。丢弃某样东西就像撕掉盒子上的标签:房间现在可以放新东西了,但旧东西仍然在那里&#…

leetcode 二分查找·系统掌握 有效的完全平方数

题目: 题解: 就是一个非常普通的二分查找,但是需要注意的是查找的上下界,因为是完全平方,所以可以把上界设为这个数的一半,但是要特殊处理num等于1的时候。 bool isPerfectSquare(int num) {if(num1)retur…

指令微调数据集构建方法

指令微调(Instruction Tuning),是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调,在一些文章中也称为有监督微调(Supervised Fine-tuning,SFT)或多任务提示训练(Multi…

Window和linux杀死进程的方式(命令行版)

在本文中,我们将探讨如何在Windows和Linux操作系统下高效地终止指定的进程,涵盖基本命令与高级技巧,确保您能灵活应对各种管理需求。 linux杀死进程 在终端中,我们通过下面命令找到端口运行的程序 lsof -i:72812. 然后输入下面…

高考填报志愿不容易,压线考生怎么救?

每年的高考季 就是高考生们水深火热的一大月份,很多考生都会纠结要报考哪些学校,哪些专业好,并非每个学生从小就有明确的目标,很多人到6月份才深思这个问题,此时难免手慌脚乱,更别说一些考生的分数处于一本…

在C++中,构造器(Builder)模式的思考(《C++20设计模式》及常规设计模式对比)

文章目录 一、前言二、为什么需要Builder Pattern,Builder Pattern到底解决了什么实际问题?为什么不用set()方法?2.1 初学者有那些对象的属性初始化方法呢?2.1.1 构造函数的弊端2.1.1.1 对于属性的初始化只能是固定的顺序 2.1.2 用set()函数初…

k8s部署grafana beyla实现app应用服务依赖图可观测

k8s部署grafana beyla OS: Static hostname: test Icon name: computer-vm Chassis: vm Machine ID: 22349ac6f9ba406293d0541bcba7c05d Boot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02 Virtualization: vmware Operating System: Ubuntu 22.04.4 LTS Kernel: Linux 5.15.0-105-g…

oracle 外连接(+)和left join用法

案例1: select count(1) FROM TFUNDINFO A, TFUNDTYPE B WHERE A.VC_FUNDCODEB.VC_FUNDCODE() select count(1) FROM TFUNDINFO A, TFUNDTYPE B WHERE A.VC_FUNDCODEB.VC_FUNDCODE SELECT count(1): 这表示查询将返回一个计数,count(1)是一种常见的计数…

创建阿里云的免费镜像仓库

1、登录 阿里云 首先进入阿里云的官网,如果没有注册的需要先注册,这里就不过多的讲解了。 2、搜索 登录完毕后点击右上角的控制台 进入管理页面。或者直接在搜索框中输入容器镜像服务 点击进入 这里我是已经开通过了,如果你还没有开通的…

JSON序列化与反序列化

目录 JSON序列化 查看JSON文件,设置数据模板类 ​编辑 Newtonsoft.Json下载 运行结果展示 JSON反序列化 序列化是将对象或数据结构转换为可以存储或传输的格式(如JSON字符串)的过程,而反序列化则是将这个格式的数据转换回原…

python3GUI--ktv点歌软件By:PyQt5(附下载地址)

文章目录 一.前言二.展示1.启动2.搜索2.服务1.首页2.天气预报3.酒水饮料4.酒水饮料2 3.服务4.灯光5.调音6.排行榜7.分类点歌9.歌手点歌10.歌手个人页 三.心得体会1.关于代码2.关于设计3.关于打包 四.总结 文件大小:33.…

APP启动流程解析

简单概括启动微信的流程就是: 1.Launcher通知AMS 要启动微信了,并且告诉AMS要启动的是哪个页面也就是首页是哪个页面 2.AMS收到消息告诉Launcher知道了,并且把要启动的页面记下来 3.Launcher进入Paused状态,告诉AMS&#xff0c…

[数据概念]一分钟弄懂数据治理

“ 数据治理是数据资产化的起点。” 数据资产化的趋势正愈演愈烈。然而,我们必须清醒地认识到,资产化的前提条件是拥有实际的数据资产。那么,这些宝贵的数据资产究竟源自何处呢?答案显而易见,它们源自企业日常运营中积…

车载以太网权威指南阅读笔记

总体思路: 要基于车载以太网做出相应的机器人以太网神经中枢,需要按照以下步骤: 了解车载以太网,包括但不限于 车载以太网是如何基于汽车需求定义的车载以太网的工作模式车载以太网工作所需要的硬件车载以太网中的数据交互模式 …

Chrome插件: Octotree让你GitHub代码浏览速度飙升

在GitHub上浏览和管理项目代码时,您是否曾为复杂的目录结构感到困惑?如果有一种工具能够让您轻松浏览项目的文件和目录,会不会大大提升您的工作效率?这正是Octotree浏览器插件所能做到的。 不过说实话,GitHub自带的代码…