1、Playwright 入门

1、 原理

Playwright 是微软开发的 Web应用自动化测试框架

它和另外一个 web自动化框架 Selenium 有 什么区别呢?

区别一:

Selenium 只提供了 Web 自动化功能, 如果你要做自动化测试,需要结合其它自动化测试框架

而 Playwright 是面向自动化测试的,除了Web自动化功能,它也包含了自动化测试的功能框架;

区别二:

两者的自动化原理有些差别,如下图所示,详见视频讲解

2、安装

Playwright 也支持多种语言开发,比如 JavaScript/TypeScript, Python, Java, C#

1、下载python 安装包

www.python.org/downloads/ 选择自己需要的版本下载安装

2、配置pip 源

在当前用户目录下创建一个pip的文件夹,然后再在文件夹里创建pip.ini文件并输入内容: 在pip.ini文件输入:

ini 复制代码
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

一键永久修改

在cmd中输入以下命令,即可永久修改镜像:

arduino 复制代码
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后可在终端输入:pip install ipthon 。通过下载,你会发现下载速度大大的提高。

3、安装 playwright 客户端库

执行 pip install playwright

bash 复制代码
D:\Ui>pip install playwright
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting playwright
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/68/c7/49a1d08ddb29f4c0c71ad3a1e7ca3c23e40f7075a99574fe5dbf228fda05/playwright-1.42.0-py3-none-win_amd64.whl (29.4 MB)
     -------- ------------------------------- 6.4/29.4 MB 575.1 kB/s eta 0:00:40
     

3、安装浏览器

playwright 这个项目默认使用自己编译好的几种浏览器,比如 chromium, firefox, webkit

这些浏览器是通过各自的开源项目编译出来的。

和我们下载安装的 Chrome,Firefox,Safri 这些品牌浏览器(stock browser)的区别,请看这里

playwright 每个版本都绑定 自编译浏览器的某个版本, 可以通过 官方Release Note 看到对应关系

安装很简单,执行 playwright install 即可,

会出现如下浏览器下载界面

如果你只需要自动化一种浏览器,可以在参数中指定,比如 playwright install chromium

当然 playwright 也可以自动化 已经安装好的品牌浏览器,比如Chrome, Edge, Firefox等,后文会有讲解

品牌浏览器往往会自动更新,如果使用Selenium自动化,就需要不断下载新的驱动。

playwright使用自编译浏览器不会自动更新,从而避免驱动和浏览器不匹配的问题。

当然,如果你只是想测试和品牌浏览器的兼容性,就无需上述下载了。

基础测试

ini 复制代码
# -*- coding: utf-8 -*-
from playwright.sync_api import sync_playwright
# 启动 playwright driver 进程
p = sync_playwright().start()
# 启动浏览器,返回 Browser 类型对象
browser = p.chromium.launch(headless=False)
# 创建新页面,返回 Page 类型对象
page = browser.new_page()
page.goto("https://www.baidu.com")
print(page.title()) # 打印网页标题栏
p.stop()
相关推荐
SomeB1oody4 小时前
【RustyML入门】6.3. 并行归约
开发语言·后端·机器学习·rust·教程
Profile排查笔记4 小时前
指纹浏览器哪个好?从 Profile、代理、权限和自动化能力判断是否适合
前端·人工智能·后端·自动化
用户938515635075 小时前
用 AI 结对编程从 0 搭一个"单词后台管理系统":Next.js + Supabase + Drizzle + shadcn/ui 全记录
后端·postgresql·next.js
爱学习的小邓同学5 小时前
Golang --- (1)第一个Golang程序
开发语言·后端·golang
小灰灰搞电子6 小时前
Rust+Slint 实现的“DNA双螺旋”加载动画源码分享
后端·rust·slint·加载动画
面向Google编程6 小时前
向量库不再囤数据:Milvus 3.0 零拷贝直读数据湖
后端
IT_陈寒8 小时前
Redis内存警告竟是因为这个不起眼的配置项
前端·人工智能·后端
Python私教8 小时前
AI 漫剧角色一进分镜就变脸?把提示词升级成“角色 ID + 镜头合同”
后端
Python私教8 小时前
一次生成 20 个角色却全都撞脸:我用“角色合同”重做了批量生成流程
后端
用户594404103569 小时前
Go 语言高性能 Web 服务开发:基于 Gin + GORM + Redis 构建 RESTful API
后端