web自动化|pyppeteer的使用-python版本puppeteer

一、介绍

puppeteer: web自动化测试-puppeteer入门与实践

pyppeteer:puppeteer的非官方python库.支持python3.5|3.6|3.7

二、环境准备

1.安装python3

2.安装pypptr

python3 -m pip install pyppeteer

三、实例

import asyncio
from pyppeteer import launch
async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('http://www.baidu.com')
    await page.screenshot({'path': 'baidu.png'})


    dimensions = await page.evaluate('''() => {
        return {
            width: document.documentElement.clientWidth,
            height: document.documentElement.clientHeight,
            deviceScaleFactor: window.devicePixelRatio,
        }
    }''')
    print(dimensions)
    # >>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())

执行: python3 pypptr-demo.py

![image.png](https://upload-images.jianshu.io/upload_images/2054612-209615e999320d8d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

第一次执行回去下载chromium,执行后看到控制台有打印信息,在工程目录下有截图。

四、puppeteer与pyppeteer的不同点

puppeteer与pyppeteer大部分情况下是很相同的,由于javascript与python的不同语言特性让这两者有了区别。

1.参数

javascript:

    const browser = await puppeteer.lauch({headless:true})

python:

        browser = await launch({'headless':'True'})
or    browser = await launch(headless=True)

人对于pypptr 即支持字典也支持Keyword风格的参数。

2.元素选择器方法名($ -> querySelector)

在python中,$不能用于方法名。因此,pyppeteer使用Page. queryselector ()/Page.queryselectorall()/Page.xpath()代替Page.$()/Page.$$()/Page.$x(). Pyppeteer还为这些方法提供了缩写,Page.J()、Page.JJ()和Page.Jx()。

puppeteer:

  await page.$('#kw')

pypptr:

  await page.queryselector('#kw')
or await page.J('#kw')

五、使用问题

1.Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:8....

解决:

pip3 install --upgrade certifi 
open /Applications/Python\ 3.6/Install\ Certificates.command

pypptr doc:[https://miyakogi.github.io/pyppeteer/index.html](https://miyakogi.github.io/pyppeteer/index.html)

原文发布于微信公众号 - 测试邦(testerbang)

原文发表时间:2019-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券