pyppeteer(三)--常规操作

点击、输入

import asyncio
import random
from pyppeteer import launch

def input_time_random():
    return random.randint(100, 151)

async def main():
    browser = await launch({'headless':False})
    page = await browser.newPage()
    await page.goto('https://login.taobao.com')
    await page.waitFor(3 * 1000)
    await page.click('#J_QRCodeLogin > div.login-links > a.forget-pwd.J_Quick2Static')
    await page.waitFor(3 * 1000)
    await page.type('#TPL_username_1', '123123', {'delay': input_time_random() - 50})
    await page.type('#TPL_password_1', '232322332', {'delay': input_time_random()})
    await page.waitFor(3 * 1000)
    await browser.close()

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

点击用page.click方法,默认是css-selector

await page.click('#J_QRCodeLogin > div.login-links > a.forget-pwd.J_Quick2Static')

输入用page.type方法,第一个参数是选择器,第二个参数是要输入的字符串,第三个参数是延时设置

await page.type('#TPL_username_1', '123123', {'delay': input_time_random() - 50})
await page.type('#TPL_password_1', '232322332', {'delay': input_time_random()})
1.gif

获取元素坐标

常用于获取验证码相关坐标

el = await page.querySelector('#nc_1_n1z')
box = await el.boundingBox()
await page.hover('#nc_1_n1z') #鼠标移动方块上
await page.mouse.down() #鼠标拖动操作包括按下、移动、放开
await page.mouse.move(box['x']+1000,box['y'], {'delay': random.randint(1000, 2000),'steps':3})
await page.mouse.up()
1.gif

滚动

以简书首页作为例子

import asyncio
import random
from pyppeteer import launch

def input_time_random():
    return random.randint(100, 151)

async def main():
    browser = await launch({'headless':False})
    page = await browser.newPage()
    await page.goto('https://www.jianshu.com')
    await page.waitFor(3 * 1000)
    # await page.evaluate('window.scrollBy(0, window.innerHeight)') #淘宝滚动加载用
    await page.evaluate('window.scrollBy(0, document.body.scrollHeight)')
    await page.waitFor(5 * 1000)
    await browser.close()

asyncio.get_event_loop().run_until_complete(main())
1.gif
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,979评论 1 45
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,378评论 0 7
  • 1.puppeteer简介 puppeteer是一个node库,是Google chrome团队官方的无界面(he...
    伊人风采_690d阅读 12,264评论 0 11
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,101评论 0 3
  • Mobile Web Favorites 参与贡献 移动前端开发收藏夹,欢迎使用Issues以及 Pull Req...
    柴东啊阅读 4,214评论 0 2