它是微软在今年年初发布的新一代自动测试工具。与目前最常用的工具相比,它只需要一个工具就可以自动执行主流浏览器的自动操作。该库支持的两种变体是同步和异步。
剧作家是微软在2020年初发布的新一代自动测试工具。与目前最常用的工具Selenium相比,它只需要一个API就可以自动执行主流浏览器(Chromium、Firefox、WebKit)的自动操作。
安装(venv)李丰@apple bin % pip3安装playwright收集剧作家下载playwright -1 . 17 . 0-py3-none -ma cosx _ 10 _ 13 _ x86 _ 64 . whl(29.6 MB)| ████████████████████████████████| 29.6 MB 26kb/s收集pyee>=8.0.1下载pye -8 . 2 . 2-py2 . py3-none -any . whl(12kb)收集websockets>=8.1下载websockets4
(venv)李丰@苹果bin %剧作家安装chromium下载chromium v939194的剧作家版本-119.9 Mb[= = = = = = = = = =]100% 0.0 chromium v 939194的剧作家版本下载到/Users/李丰/Library/Caches/ms-剧作家/chromium -939194下载ffmpeg v1006的剧作家版本-1.1 Mb[= = = = = = = = = = = = =]100% 0.0 李丰@苹果bin %剧作家安装webkit下载webkit v1578的剧作家构建-54.2 Mb[= = = = = = = = = = = = = = =]100% 0.0下载到/Users/李丰/Library/Caches/ms-剧作家/ Webkit-1578 Webkit是一个开源浏览器引擎。 基于WebKit的浏览器产品包括:苹果的Safari和iPhone,谷歌的Chrome和Android,诺基亚的S60,傲游3;
安装后,您可以导入使用Python脚本中的剧作家,并启动3个浏览器中的任何一个(chromium、firefox和webkit)。
从剧作家. sync_api导入sync _ playwrightwith sync _剧作家()as p:# Browser = p . WebKit . launch()Browser = p . Firefox . launch()# Browser = p . chromium . launch()page = Browser . new _ page()page . goto(" http://www . Baidu . com ")print(page . title())Browser . close()剧作家库支持api的两种变体:同步和异步。如果您的现代项目使用asyncio,您应该使用async API:
import asynciofrom剧作家. async _ API import async _ playwright async def main():async with async _剧作家()as p:# browser = await p . WebKit . launch()# browser = await p . Firefox . launch()browser = await p . chromium . launch()Page = await Page . goto(" https://www . Baidu . com ")print(await Page . title())await browser . close()两个运行结果如下所示:
百度一下,你就知道以退出代码0结束的Process的第一个脚本是从stronger . sync _ API导入sync _ stronger用sync _ stronger()作为p:browser = p . webkit . launch()Page = browser . new _ Page()Page . goto(" https://www . Baidu . com ")Page . screen shot(path = " example . png ")browser . close()用WebKit浏览器访问百度,然后截图。这幅画的名字叫example.png。
录制脚本(venv)莫砺锋@苹果~%剧作家Codegen Baidu.com最后复制了录制视频的脚本放入你的编辑器运行:
从剧作家. sync_api导入剧作家,sync_playwrightdef run(剧作家:剧作家)-> None: browser =剧作家. chromium . launch(headless = False)context = browser . new _ context()#打开新页面page = context.new_page() #进入https://www.baidu.com/ page . goto(" https://www . Baidu . com/")page . Click(" input[name =/" wd/"]")# Fill input[name = " wd "]page . Fill(" input[name =/" wdie = ut F-8 & f = 8 & RSV _ BP = 1 & RSV _ idx = 1 & TN = Baidu & wd = % E7 % 99% BE % E5 % BA % A6 % E7 % 99% BE % E7 % A7 % 91 & fenlei = 256 & RSV _ pq = d 14d 33 e 400031 DCF & RSV _ t = 8855 fje 1 by 92 gcaswothpkjo 1 fjo 0 owlbzvd V6 r 4 r 20 srzkjie = ut F-8 & f = 8 & Rsv _ BP = 1 & Rsv _ idx = 1 & TN = Baidu & wd = % E7 % 99% BE % E5 % BA % A6 % E7 % 99% BE % E7 % A7 % 91 & fenlei = 256 & Rsv _ pq = d 14d 33 e 400031 DCF & Rsv _ t = 8855 fje 1 by 92 gcaswothpkjo 1 fjo 0 owlbzvd V6 r 4 r 20 srzkj司机越跑越慢。脚本录制(较强)和脚本稳定性(相对较弱)有待测试。需要等待机制。文档社区越来越少,越来越丰富。以上是初步了解的比较区分,不过感觉剧作家前景还可以。后续会写一些系列文章,一起讨论学习。
以上总结可能对你有帮助,也可能没有,但还是希望能帮到你。如有疑问或歧义,直接私信及时更正发布;期待大家的赞和分享。谢谢大家!
未完,未完待续…
一直在努力,希望你也是!
在微信上搜索微信官方账号:用python就行
作者:李峰,编辑:梁莉莉
更多请关注微信官方账号。
评论前必须登录!
注册