Playwright+Python自动化测试教程

马尚
• 阅读 90

一、Playwright简介(参考资料:panbaiducom/s/1F3TmR63eRsrQPZsd_pQ8Hw 提取码:4ol3 ) 微软开源自动化测试工具Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。

二、playwright特性 1、支持所有主流浏览器 支持所有主流浏览器:基于Chromium内核的Google Chrome 和 Microsoft Edge浏览器), WebKit内核的Apple Safari 和 Mozilla Firefox浏览器,不支持IE11。 跨平台:Windows、Linux 和macOS 可用于模拟移动端WEB应用的测试,不支持在真机上测试。 支持无头模式(默认)和有头模式

2、快速可靠的执行 自动等待元素 Playwright基于Websocket协议,可以接受浏览器(服务端)的信号。selenium采用的是HTTP协议,只能客户端发起请求。 浏览器上下文并行:单个浏览器实例下创建多个浏览器上下文,每个浏览器上下文可以处理多个页面。 有弹性的元素选择:可以使用文本、可访问标签选择元素。

3、强大的自动化能力 playwright是一个进程外自动化驱动程序,它不受页面内JavaScript执行范围的限制,可以自动化控制多个页面。 强大的网络控制:Playwright 引入了上下文范围的网络拦截来存根和模拟网络请求。 现代web特性:支持Shadow DOM选择,元素位置定位,页面提示处理,Web Worker等Web API。 覆盖所有场景:支持文件下载、上传、OOPIF(out-of-process iframes),输入、点击,暗黑模式等。

三、同步和异步API Playwright支持同步和异步两种API,使用异步API需要导入asyncio库,它是一个可以用来实现Python协程的库,更详细介绍可参考Python协程 。 下面介绍如何使用python语言编写简单的playwright自动化脚本。 一共有2条测试用例,用例1步骤如下: chrome浏览器打开百度 搜索框输入“test” 点击百度一下搜索 点击搜索结果的第2页

用例2步骤: chrome浏览器打开搜狗搜索 搜索框输入“test” 点击搜狗搜索 点击搜索结果的第2页

四、连接现有浏览器 除了创建新的浏览器实例,Playwright还支持连接到一个已经存在的浏览器实例,这在许多浏览器自动化应用场景中非常有用。例如,可以在已经登录到需要双因素身份验证的帐户或者已经完成了一些手动操作的浏览器中继续自动化程序,或者将控制权交还给手动操作。

让我们来看一下如何连接已经存在的 Chrome 浏览器。首先,我们需要打开 Chrome 浏览器的调试开关,这可以通过传递--remote-debugging-port参数来实现。

五、安装 有两种方法来安装该软件。 第一种方法是使用Node.js包管理器,如npm。如果选择这种方法,需要在电脑上安装Node.js。对于其他语言,Python使用pypi,Java使用Maven,C#可以使用 "dotnet add package "等.NET CLI命令来安装playwright的依赖项。

第二种方法是安装VSCode的playwright扩展,它带有方便的安装命令。这种方法能够让整个过程更顺畅、更容易。 Playwright的第一个特点(跨浏览器、跨平台和跨语言支持),我们可以说,它支持所有现代浏览器,在任何平台上都没有真正的限制。虽然它也支持流行的语言和技术,但支持的最好的语言是Typescript/Javascript。例如,如果你想在Java中使用Playwright,你需要选择你喜欢的测试运行器,如JUnit,并管理Playwright对象,如BrowserContext和Page。此外,你还需要为HTML报告找到一个解决方案。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Stella981 Stella981
2年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Wesley13 Wesley13
2年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
2年前
Selenium使用及原理
1、Selenium介绍Selenium是一个Web测试工具,通过直接控制浏览器来实现Web测试,与真实用户操作完全一致。Selenium目前支持IE、Firefox、Chrome、Safari、Opera等浏览器,Selenium支持主流的操作系统平台Windows、Linux、Mac等,Selenium支持Java、Ruby、Python
Wesley13 Wesley13
2年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
马尚 马尚
3星期前
C#+WPF开发IOC框架实战架构师
一、WPF是什么(参考资料:panbaiducom/s/1lu2XzblmPIrgzF2P0xpA提取码:msyk)WPF是WindowsPresentationFoundation的缩写,是一种基于XAML(ExtensibleApplicationMa