python palywright库基本使用
作者:测神 发布时间:2021-03-30 17:34:42
标签:python,palywright,库
开源方:微软
安装: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()
来源:https://www.cnblogs.com/teark/p/14267240.html
0
投稿
猜你喜欢
- 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
- 一、is_numberic函数简介国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构bool is_num
- 本文实例讲述了django框架事务处理。分享给大家供大家参考,具体如下:django 中要求事务处理的情况有两种:1.基于django or
- 一、什么是集成学习集成学习是一种技术框架,它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,一般结构是:先产
- PRD的作用之一在于,保留产品设计初衷,期望达到什么样的目的,起到事后验证的效果。产品初衷需要做到利益最大化,找最大的蛋糕,为最大目标人群服
- 关于 PHP 的文件操作,我们也将是通过一系列的文章来进行学习。今天我们先学习的是一个很少人使用过,甚至很多人根本不知道的扩展,它与我们日常
- python代码如下:import numpy as np# Write a function that takes as input a
- 不知道大家有没发现DWMX中有一个和FW差不多的制作弹出菜单功能?这个功能允许用文字和图片做为主菜单,如果用文字的话要先做虚拟链接。下面简单
- 平时自己写了很多代码,但从没好好计算总共写了多少行,面试时被问起来,就傻了。。。闲来无事,写个python程序来统计下import os##
- 本文实例为大家分享了python判断设备是否联网的具体代码,供大家参考,具体内容如下直接上代码,就是用判断socket能不连上的方法来判断。
- 不管是写自定义标签还是过滤器,第一件要做的事是创建模板库(Django能够导入的基本结构)。创建一个模板库分两步走:
- 关于Pytorch的MNIST数据集的预处理详解MNIST的准确率达到99.7%用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,
- 关于浏览器的最离奇的统计结果之一就是Internet Explorer 版本6,7和8共存。截至本文,Internet Explorer各个
- 还是决定冠上ajax的头衔,毕竟很多人会用这个关键词搜索。虽然我认为这只是个炒作的概念,不过不得不承认ajax叫起来要方便多了。ajax的意
- li {list-style-image: url(images/disc.gif);}li的这个样式定义是将列表项目使用图片来代替显示的小
- WARNING:低技术力自己无聊写的哥特字体是最好看的:示例代码:#!usr/bin/env python3# -*- coding:UTF
- finetune分为全局finetune和局部finetune。首先介绍一下局部finetune步骤:1.固定参数 for na
- import上一级目录的模块python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修
- 目录Logging模块的使用简单使用指定日志输出样式日志记录到文件中自定义日志配置准备日志配置信息准备日志配置信息加载日志配置信息使用日志配
- 导语哈喽吖铁汁萌!今天这期就给大家介绍几个我用到的办公室自动化技巧,可以瞬速提高办公效率。有需要的可以往下滑了1、Word文档doc转doc