python palywright库基本使用


Posted in Python onJanuary 21, 2021

开源方:微软

安装:pip install playwright;python -m playwright install

特点:自动化脚本录制;有同步、异步api

生成代码指令:python -m playwright codegen
其他:需要Python 3.7及以上;官方api为node版本,python版本待补充

同步:关键字为:sync_playwright

from time import sleep
from playwright import sync_playwright
with sync_playwright() as p:
  for browser_type in [p.chromium, p.firefox, p.webkit]:
    browser = browser_type.launch(headless=False) # 默认无头,这样为有头模式
    page = browser.newPage()
    page.goto('http://baidu.com')
    page.fill("input[name=\"wd\"]", "AirPython")
    with page.expect_navigation():
      page.press("input[name=\"wd\"]", "Enter")
    page.waitForSelector("text=百度热榜")
    page.screenshot(path=f'example-{browser_type.name}.png')
    sleep(5)
    browser.close()

异步:关键字为:async_playwright

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://baidu.com')
      await page.fill("input[name=\"wd\"]", "AirPython")
      await page.press("input[name=\"wd\"]", "Enter")
      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())

集成 pytest 测试

@pytest.fixture(scope="session")
def test_playwright_is_visible_on_google(page):
  page.goto("https://www.google.com")
  page.type("input[name=q]", "Playwright GitHub")
  page.click("input[type=submit]")
  page.waitForSelector("text=microsoft/Playwright")

执行 JS 代码

from playwright import sync_playwright
with sync_playwright() as p:
  browser = p.firefox.launch()
  page = browser.newPage()
  page.goto('https://www.example.com/')
  dimensions = page.evaluate('''() => {
  return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio
      }  }''')
  print(dimensions)
  browser.close()

中断网络请求

from playwright import sync_playwright
with sync_playwright() as p:
  browser = p.chromium.launch()
  page = browser.newPage()

def log_and_continue_request(route, request):
  print(request.url)
  route.continue_()

记录并继续所有网络请求

page.route('**', lambda route, request: log_and_continue_request(route, request))
page.goto('http://todomvc.com')
browser.close()

以上就是python palywright库基本使用的详细内容,更多关于python palywright库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python Matplotlib库入门指南
May 18 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
python如何读写json数据
Mar 21 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
python实现3D地图可视化
Mar 25 Python
使用python创建Excel工作簿及工作表过程图解
May 27 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
Python字典取键、值对的方法步骤
Sep 30 Python
运行Python编写的程序方法实例
Oct 21 Python
python中time、datetime模块的使用
Dec 14 Python
python Scrapy爬虫框架的使用
Jan 21 #Python
python 可视化库PyG2Plot的使用
Jan 21 #Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 #Python
Python实现石头剪刀布游戏
Jan 20 #Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 #Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 #Python
Django+Django-Celery+Celery的整合实战
Jan 20 #Python
You might like
德劲1103的维修打理经验
2021/03/02 无线电
PHP的FTP学习(二)
2006/10/09 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
js自定义事件代码说明
2011/01/31 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
JavaScript实现简单评论功能
2017/08/17 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
Python打印斐波拉契数列实例
2015/07/07 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
python创建文本文件的简单方法
2020/08/30 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
信息技术教学反思
2014/02/12 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python