playwright意思,playwright中文教程
相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写一个Python自动化脚本解放双手,基本上就是一个常规操作。如果爬虫不会爬,就要用自动化测试来凑。
虽然selenium有完整的文档,但是也需要一定的学习成本,一个纯mldzx是有一些门槛的。
最近,微软开发了一个开源项目,名为“剧作家-python”。这是碉堡!这个项目是Python语言的纯自动化工具,甚至不用写代码就可以实现自动化功能。
你可能会觉得有点奇怪,但它就是这么强大。让我们一起来看看这个神器。
1.剧作家简介剧作家是一个强大的Python库,可以自动执行Chromium、Firefox、WebKit等主流浏览器的自动化操作。只有一个API。同时支持无头模式和无头模式运行。
剧作家提供的自动化技术绿色、强大、可靠、快速,支持Linux、Mac和Windows操作系统。
2.使用剧作家安装剧作家的安装非常简单,需要两步。
#安装剧作家库pip安装剧作家#安装浏览器驱动文件(安装过程有点慢)python -m剧作家安装以上两个pip操作是分开安装的:
安装剧作家依赖库需要Python3.7。
安装Chrome、Firefox、WebKit和其他浏览器的驱动程序。
不需要写一行代码来记录剧作家。我们只需要手动操作浏览器,它会记录我们的操作,然后自动生成一个代码脚本。
下面是录制的命令codegen,只有一行。
#在命令行上键入-help以查看所有选项。Python-M剧作家Codegen Codegen的用法可以用-help查看。如果用起来简单的话,就是直接在命令后面加上url链接。如果有其他需求,可以添加选项。
python -m剧作家Codegen-help用法:index Codegen[options][URL]打开页面并为用户操作生成代码选项:-o,-输出文件名将生成的脚本保存到文件-目标语言要使用的语言,javascript、python、python-async、Csharp之一(默认为:“python”)-h,-help显示命令示例的帮助:$ Codegen $ Codegen-target=python $-b WebKit Codegen https://example.com选项含义:
-o:将记录的脚本保存到文件中。
-target:指定生成脚本的语言,包括JS和Python,默认为Python。
-b:指定浏览器驱动程序
例如,我想在Baidu.com搜索,用chromium驱动,并将结果保存为my.py python文件。
Python-m剧作家Codegen-Target Python-O my . py -b铬https://www.baidu.com在命令行输入后会自动打开浏览器,然后你可以看到浏览器上的每一个动作都会自动翻译成代码,如下图。
完成后,自动关闭浏览器,并将生成的自动化脚本保存到py文件。
from剧作家导入sync_playwrightdef run(剧作家):browser=剧作家. chromium . launch(headless=False)context=browser . new context()#打开新页面page=context . new page()page . goto( https://www . Baidu . com/)page . click( input[name= wd ])page . fill( input[name= wd ],京东)page.click(text= JD .COM )# Click//a[normalize-space(.)=官网,JD.COM,JD有多快多好。COM?]with page . expect _ navigation():with page . expect _ popup()As popup _ info:page . click(//a[normalize-space(.)=官网,JD.COM,JD有多快多好。COM ])page 1=popup _ info . value #-。Browser.close()用sync _剧作家()作为剧作家:run(剧作家)另外,剧作家还提供了同步和异步API接口,有以下文档。
链接:https://microsoft.github.io/playwright-python/index.html
同步以下样例代码:依次打开三个浏览器,去百度搜索,然后截图退出。
从剧作家导入sync _剧作家以sync _剧作家()为p:for browser _ type in[p . chromium,p.firefox,p . WebKit]:browser=browser _ type。launch()page=浏览器。新页面()页面。goto( https://百度。com/)页面。screen(path=f 示例-{ browser _ type。名称} .png) browser.close()异步异步操作可结合异步超正析象管(Image Orthicon)同时进行三个浏览器操作。
导入asynciofrom剧作家import async _剧作家async def main():async with async _剧作家()as p:for browser _ type in[p . chromium,p.firefox,p . WebKit]:browser=await browser _ type。launch()page=await浏览器。新页面()等待页面。goto( http://百度。com/)等待页面。screen(path=f 示例-{ browser _ type。名称} .等待浏览器。close()asyncio。get _ event _ loop()。运行直到完成(main()移动端更厉害的是,剧作家还可支持移动端的浏览器模拟。
下面是官方文档提供的一段代码,模拟在给定地理位置上手机iphone 11 pro上的旅行队浏览器,首先导航到maps.google.com,然后执行定位并截图。
从剧作家导入sync _ playwrightwith sync _剧作家()as p:iPhone _ 11=p . devices[ iPhone 11 Pro ]browser=p . WebKit。启动(headless=False)上下文=浏览器。新上下文(* * iPhone _ 11,locale=en-US ,地理位置={ 经度:12.492507,纬度:41.889938 },权限=[地理位置])page=上下文。新页面()页面。goto( 3https://地图).另外,还可以配合pytest插件一起使用,感兴趣可以自己试一下。
3.总结剧作家相比已有的自动化测试工具有很多优势,比如:
跨浏览器,支持Chromium、Firefox、WebKit跨操作系统,支持Linux、Mac、Windows可提供录制生成代码功能,解放双手可用于移动端目前存在的缺点就是生态和文档还不是非常完备,比如没有应用程序接口中文文档、没有较好的教程和示例供学习。不过相信,随着知道的人越来越多,未来会越来越好。
开源代码库链接:https://github。com/Microsoft/剧作家-蟒蛇
开源组织:微软
原创不易,欢迎点赞、在看、分享。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。