iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么使用Playwright实现自动化
  • 516
分享到

Python中怎么使用Playwright实现自动化

2023-06-15 18:06:55 516人浏览 泡泡鱼

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

摘要

这篇文章将为大家详细讲解有关python中怎么使用Playwright实现自动化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、Playwright介绍Playwright是一个强大的Py

这篇文章将为大家详细讲解有关python中怎么使用Playwright实现自动化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、Playwright介绍

Playwright是一个强大的Python库,仅用一个api即可自动执行Chromium、Firefox、WEBKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。

Playwright提供的自动化技术是绿色的、功能强大、可靠且快速,支持linuxMac以及windows操作系统

还有朋友这么夸:这个项目作为针对 Python 语言纯自动化的工具,解放了代码,实现了自动化功能,我们来看看怎么用它吧。

2、Playwright使用

安装

Playwright的安装非常简单,两步解决。

安装playwright库  pip install playwright  安装浏览器驱动文件(安装过程稍微有点慢)  python -m playwright install  复制代码

上面两个pip操作分别安装:

  •  安装Playwright依赖库,需要python3.7+

  •  安装Chromium、Firefox、WebKit等浏览器的驱动文件

录制

使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。

下面就是录制的命令codegen,仅仅一行。

命令行键入 --help 可看到所有选项  python -m playwright codegen  复制代码

codegen的用法可以使用--help查看,如果简单使用就是直接在命令后面加上url链接,如果有其他需要可以添加options。

python -m playwright codegen --help  Usage: index codegen [options] [url] open page and generate code for user actions  Options:    -o, --output <file name>  saves the generated script to a file    --target <language>       language to use, one of javascript, python, python-async, csharp (default: "python")    -h, --help                display help for command  Examples:    $ codegen    $ codegen --target=python    $ -b webkit codegen https://example.com  复制代码

options含义:

  •  -o:将录制的脚本保存到一个文件

  •  --target:规定生成脚本的语言,有js和Python两种,默认为Python

  •  -b:指定浏览器驱动

比如,我要在baidu.com搜索,用chromium驱动,将结果保存为my.py的python文件。

python -m playwright codegen --target python -o 'my.py' -b chromium Https://www.baidu.com  复制代码

命令行输入后会自动打开浏览器,然后可以看见在浏览器上的一举一动都会被自动翻译成代码,如下所示。

Python中怎么使用Playwright实现自动化

结束后自动关闭浏览器,保存生成的自动化脚本到py文件。

from playwright import sync_playwright  def run(playwright):  browser = playwright.chromium.launch(headless=False)  context = browser.newContext()  # Open new page  page = context.newPage()  page.Goto("https://www.baidu.com/")  page.click("input[name="wd"]")  page.fill("input[name="wd"]", "jingdong")  page.click("text="京东"")  # Click //a[nORMalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']  with page.expect_navigation():     with page.expect_popup() as popup_info:          page.click("//a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']")      page1 = popup_info.value  # ---------------------  context.close()  browser.close()  with sync_playwright() as playwright:  run(playwright

此外,playwright还提供了同步和异步的API接口,文档如下。

链接:https://microsoft.GitHub.io/playwright-python/index.html

同步

下面示例代码:依次打开三个浏览器,前往baidu搜索,截图后退出。

from playwright import sync_playwright  with sync_playwright() as p:  for browser_type in [p.chromium, p.firefox, p.webkit]:      browser = browser_type.launch()      page = browser.newPage()      page.goto('https://baidu.com/')      page.screenshot(path=f'example-{browser_type.name}.png')      browser.close()      复制代码

异步

异步操作可结合asyncio同时进行三个浏览器操作。

import asyncio  from playwright import async_playwright  async def main():  async with async_playwright() as p:      for browser_type in [p.chromium, p.firefox, p.webkit]:          browser = await browser_type.launch()          page = await browser.newPage()          await page.goto('http://baidu.com/')          await page.screenshot(path=f'example-{browser_type.name}.png')          await browser.close()          asyncio.get_event_loop().run_until_complete(main())         复制代码

移动端

更厉害的是,playwright还可支持移动端的浏览器模拟。下面是官方文档提供的一段代码,模拟在给定地理位置上手机iphone 11 pro上的Safari浏览器,首先导航到maps.google.com,然后执行定位并截图。

from playwright import sync_playwright  with sync_playwright() as p:  iphone_11 = p.devices['iPhone 11 Pro']  browser = p.webkit.launch(headless=False)  context = browser.newContext(      **iphone_11,      locale='en-US',      geolocation={ 'longitude': 12.492507, 'latitude': 41.889938 },      permissions=['geolocation']  )  page = context.newPage()  page.goto('https://maps.google.com')  page.click('text="Your location"')  page.screenshot(path='colosseum-iphone.png')  browser.close()  复制代码

另外,还可以配合pytest插件一起使用,感兴趣可以自己试一下。

3、总结

playwright相比已有的自动化测试工具有很多优势,其中有:

支持所有浏览器的

  •  在Chromium,Firefox和WebKit上进行测试。Playwright拥有适用于所有现代浏览器的完整API覆盖,包括Google Chrome和Microsoft Edge(带有Chromium),Apple Safari(带有WebKit)和Mozilla Firefox。

  •  跨平台的WebKit测试。使用Playwright,使用适用于Windows,Linux和macOS的WebKit构建,测试您的应用程序在Apple Safari中的行为。在本地和CI上进行测试。

  •  测试手机。使用设备仿真在移动Web浏览器中测试您的自适应Web应用程序。

  •  无报文头与有报文头。Playwright支持所有浏览器和所有平台的无头(无浏览器UI)和有头(有浏览器UI)模式。有报文头模式适用于调试,而无报文头适用于CI / cloud执行。

拥有快速可靠的执行

  •  自动等待APIs。Playwright交互会自动等待直到元素准备就绪。这样可以提高可靠性并简化测试编写流程。

  •  无超时自动化。Playwright会接收浏览器信号,例如网络请求,页面导航和页面加载事件,以消除导致睡眠中断的烦恼。

  •  与浏览器上下文保持并行。对于多个并行孤立的浏览器上下文可执行环境重复使用一个单独的浏览器实例。

  •  弹性元素选择器。Playwright可以依靠面向用户的字符串(例如文本内容和可访问性标签)来选择元素。这些字符串比紧耦合到DOM结构的选择器更具弹性。

拥有强大的自动化功能

  •  多个域,页面和框架。Playwright是一种进程外自动化驱动程序,不受页面内JavaScript执行范围的限制,并且可以自动执行具有多个页面的方案。

  •  强大的网络控制。Playwright引入上下文范围的网络拦截以便进行终止或者模拟网络请求。

  •  现代网络功能。Playwright通过插入阴的选择器,地理位置,权限,Web Worker和其他现代Web API支持Web组件。

  •  涵盖所有场景的能力。支持文件下载和上传,进程外iframe,原生输入事件,甚至是深色模式。

但它也有局限性

  •  旧版Edge和IE11支持。Playwright不支持旧版Microsoft Edge或IE11(弃用通知)。支持新的Microsoft Edge(在Chromium上)。

  •  Java语言绑定:Playwright API目前无法在Java或Ruby中使用。这是暂时的限制,因为Playwright旨在支持任何语言的绑定。

  •  在真实的移动设备上进行测试:Playwright使用桌面浏览器来模拟移动设备。

关于Python中怎么使用Playwright实现自动化就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么使用Playwright实现自动化

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

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

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

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

下载Word文档
猜你喜欢
  • Python中怎么使用Playwright实现自动化
    这篇文章将为大家详细讲解有关Python中怎么使用Playwright实现自动化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、Playwright介绍Playwright是一个强大的Py...
    99+
    2023-06-15
  • python+playwright+pytest+allure+pom+yaml实现UI自动化测试
    一. 演示项目源码 https://gitee.com/giteetangll/playwright-demo 二、UI自动化分层设计 Auth:登录认证保存后的认证信息 BasePage:封装pl...
    99+
    2023-09-10
    python pytest 开发语言
  • 怎么使用Python实现办公自动化
    本篇内容主要讲解“怎么使用Python实现办公自动化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python实现办公自动化”吧!大概是有这样一份Word一共有近2600条类似格式的表格...
    99+
    2023-06-16
  • 使用Python怎么实现自动化办公
    这篇文章给大家介绍使用Python怎么实现自动化办公,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么...
    99+
    2023-06-14
  • Python中怎么实现SQL自动化
    这篇文章给大家介绍Python中怎么实现SQL自动化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。从基础开始import pyodbc from datetime import&...
    99+
    2023-06-16
  • Python开源自动化工具Playwright安装及介绍使用
    目录1、Playwright介绍2、Playwright安装3、实操演示微软开源了一个非常强大的自动化项目叫 playwright-python 它支持主流的浏览器,包含:Chrom...
    99+
    2024-04-02
  • python自动化实现的方法怎么使用
    今天小编给大家分享一下python自动化实现的方法怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。环境配置pychar...
    99+
    2023-07-02
  • 怎么使用Python自动化实现抖音自动刷视频
    这篇文章主要介绍了怎么使用Python自动化实现抖音自动刷视频的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python自动化实现抖音自动刷视频文章都会有所收获,下面我们一起来看看吧。环境准备Pytho...
    99+
    2023-07-05
  • Python中Playwright怎么用
    这篇文章将为大家详细讲解有关Python中Playwright怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Playwright是Microsoft在2020年初开源的新一代自动化测试工具,它的功能...
    99+
    2023-06-22
  • 使用Python实现微信自动化
    Python中可以导入wxpy模块,在电脑上操作控制微信。 ...
    99+
    2023-01-31
    Python
  • 怎么使用Python实现自动化筛选简历
    本篇内容介绍了“怎么使用Python实现自动化筛选简历”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简历筛选简历相关信息如下:定义 Read...
    99+
    2023-07-02
  • 怎么用Python实现报表自动化
    Excel的基本组成我们一般在最开始做报表的时候,基本都是从Excel开始的,都是利用Excel在做报表,所以我们先了解下Excel的基本组成。下图是Excel的中各个部分的组成关系,我们工作中每天会处理很多Excel文件,一个Excel文...
    99+
    2023-05-17
    Python
  • 使用python来实现报表自动化
    本文转载于http://blog.csdn.net/coraline_mviewmode=contents 本篇文章将介绍:xlwt 常用功能xlrd 常用功能xlutils 常用功能xlwt写Excel时公式的应用xlwt写入特定目录(路...
    99+
    2023-01-31
    来实现 报表 python
  • python自动化实现的简单使用
    目录环境配置定位1.Link_text定位超链接2.混合元素定位3.Xpath定位(通常)4.css定位操作1.实现输入框自动输入2.清空输入框3.上传文件4.自动化执行javaSc...
    99+
    2024-04-02
  • Python playwright怎么自动录制生成脚本
    今天小编给大家分享一下Python playwright怎么自动录制生成脚本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-07-05
  • Python怎么实现自动化测试
    本篇文章为大家展示了Python怎么实现自动化测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码...
    99+
    2023-06-14
  • python中playwright结合pytest执行怎么实现
    这篇文章主要讲解了“python中playwright结合pytest执行怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中playwright结合pytest执行怎么实现...
    99+
    2023-06-25
  • 怎么使用selenium+unittest实现web自动化
    今天小编给大家分享一下怎么使用selenium+unittest实现web自动化的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-07-05
  • Python中怎么实现自动化处理文件
    Python中怎么实现自动化处理文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。遍历一个目录中的文件如果有如下多个数据需要读取和处理:├── data ...
    99+
    2023-06-15
  • 怎么在Linux中使用Rsync实现自动化备份
    本篇文章为大家展示了怎么在Linux中使用Rsync实现自动化备份,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。将基础环境搭配好,挂载dvd,配置dvd.repo,清楚缓存,关闭防火墙(两台主机都要...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作