Playwright如何安装和使用,有哪些优势和局限
Admin 2022-06-22 群英技术资讯 1849 次浏览
今天就跟大家聊聊有关“Playwright如何安装和使用,有哪些优势和局限”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“Playwright如何安装和使用,有哪些优势和局限”文章能对大家有帮助。Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作。作为针对 Python 语言纯自动化的工具,在回归测试中可更快的实现自动化。
(1) Selenium需要通过WebDriver操作浏览器;Playwright通过开发者工具与浏览器交互,安装简洁,不需要安装各种Driver。
(2) Playwright几乎支持所有语言,且不依赖于各种Driver,通过调用内置浏览器所以启动速度更快。
(3) Selenium基于HTTP协议(单向通讯),Playwright基于Websocket(双向通讯)可自动获取浏览器实际情况。
(4) Playwright为自动等待。
(1) Playwright不支持旧版Microsoft Edge或IE11。支持新的Microsoft Edge(在Chromium上);所以对浏览器版本有硬性要求的项目不适用。
(2) 需要SSL证书进行访问的网站可能无法录制,该过程需要单独定位编写。
(3) 移动端测试是通过桌面浏览器来模拟移动设备(相当于自带模拟器),无法控制真机。
(1)安装Playwright依赖库(Playwright支持Async\Await语法,故需要Python3.7+)
pip install playwright
(2)安装Chromium、Firefox、WebKit等浏览器的驱动文件(内置浏览器)
python -m playwright install
(1)命令行键入 --help 看到所有可后接选项
python -m playwright codegen --help
(2)从起始页为xingzheai.cn开始录制
python -m playwright codegen https://xingzheai.cn/
(3)打开xingzheai.cn,用Chromium驱动,将结果保存为my.py的python文件
python -m playwright codegen --target python -o 'my.py' -b chromium https://xingzheai.cn/
-target:规定生成脚本的语言,有JS和Python两种,默认为Python
-b:指定浏览器驱动
-o:将录制的脚本保存到一个文件
(1)元素定位
By的8种定位方式,实际为4种
W3C标准规定的webDriver协议为5种定位方式
Playwright将选择器汇总为3种
(2)选择器规则
(3)元素常用操作
page = context.newPage()
def Whether_intercept() -> bool:
return True #进行拦截
# return False #不进行拦截
def handler(route:Route):
print(route.request.url)
#正常访问
# route.continue_()
#拒绝访问
# route.abort("网络拦截")
# 重定向到非目标地址
route.fulfill(
status=302,
headers={
'Location' : "https://xingzheai.cn/"
}
)
page.route(Whether_intercept,handler)
2.5 同步执行,示例如下:
#依次打开三个浏览器,前往行者官网,截图后退出。
from playwright import sync_playwright with sync_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
# 指定为有头模式,Ture为无头模式
browser = browser_type.launch(headless=False)
page = browser.newPage()
page.goto('https://xingzheai.cn/')
# 等待页面加载完全后截图
page.waitForSelector("text=智能内容审核")
page.screenshot(path=f'example-{browser_type.name}.png')
browser.close()
#同时进行三个浏览器操作
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('https://xingzheai.cn/')
await page.waitForSelector("text=智能内容审核")
await page.screenshot(path=f'example-{browser_type.name}.png')
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
安装:pip install pytest-playwright
def test_playwright(page):
page.goto("https://xingzheai.cn/")
with page.expect_popup() as popup_info:
page.click('text="智能内容审核"')
assert "智能内容审核" == element.textContent()
目前支持模拟机型较少, 参照:仿真设备列表
from time import sleep
from playwright import sync_playwright
with sync_playwright() as p:
GalaxyS5 = p.devices['Galaxy S5']
browser = p.chromium.launch(headless=False)
context = browser.newContext(**GalaxyS5)
page = context.newPage()
page.goto('https://xingzheai.cn/')
page.click('text="智能内容审核"')
# 截图
# page.screenshot(path='colosseum-GalaxyS5.png')
sleep(10)
browser.close()
Playwright作为新一代自动化测试工具,相较于Selenium不论是易用性,还是实用性都得到了全方位的提升。做到了简约而不简单,相信使用该工具可以帮助我们提升做自动化的工作效率。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
每当有朋友过生日时,生日蛋糕自然是必不可少的。本文将利用Python中的turtle、math和random绘制一个可爱的生日蛋糕,需要的可以参考一下
一、安装此处以Ubuntu12.04为例:$sudoapt-getinstallipythonpython-matplotlibpython-numpy二、简单实例>>>importmatplotlib.pyplotasplt>>>>>>plt.figure(1)
这篇文章主要给大家介绍了关于python列表中remove()函数的使用,以及Python列表的remove方法的注意事项,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了PyTorch一小时掌握之神经网络分类篇,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
本文主要介绍了python自动化实现的简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008