ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

playwright自动化

2021-01-21 21:01:56  阅读:519  来源: 互联网

标签:playwright 浏览器 python await 自动化 page browser


playwright是谷歌开源的自动化框架

官方文档:

https://playwright.dev/

 

支持python,java,js等语言编写

安装

pip install playwright #第三方库安装
python -m playwright install #浏览器安装,可能会慢,所以要找台网速好的电脑

这下就安装好了

我们试一试录制运行吧

python -m playwright codegen --target python -o 'web录制.py' -b chromium https://www.baidu.com 

* python -m playwright codegen  录制脚本
* –help 帮助文档
* -o 生成自动化脚本的目录
* –target 脚本语言,包含 JS 和 Python,分别对应值为:python 和javascript
* -b 指定浏览器驱动
* 我们通过下面命令打开 Chrome 浏览器开始录制脚本
* 指定生成语言为:Python(默认Python,可选)
* 保存的文件名:mikezhou.py(可选)
* 浏览器驱动:webkit(默认webkit,可选)
* 最后跟着要打开的目标网站(默认仅仅是打开浏览器,可选)
python -m playwright help #查看帮助

 

 

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(headless=False)
            page = await browser.newPage()

            await page.goto('http://www.baidu.com')

            # 执行一次搜索操作
            await page.fill("input[name=\"wd\"]", "rainbol")
            await page.press("input[name=\"wd\"]", "Enter")

            # 等待页面加载完全
            await page.waitForSelector("text=搜索工具")

            # 截图
            await page.screenshot(path=f'test-{browser_type.name}.png')
            await browser.close()

asyncio.get_event_loop().run_until_complete(main())

 

最后想说的就是框架本身还不是直接录一次就能完成可以使用,还需要测试工程师调教,录制中间可以查看页面元素,但有时候会卡住不动,感觉有时候还不如直接敲代码来的顺畅,所以工具框架本身没有好不好,只有在自动化测试中辅助我们更好的完成测试,才能完成它该有的用途

 

 

参考:http://blog.yixao.net/share/17808.html

标签:playwright,浏览器,python,await,自动化,page,browser
来源: https://www.cnblogs.com/RainBol/p/14310403.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有