iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0
AI & Data

Puppeteer 簡單快速建立自己的 Nodejs 爬蟲系列 第 13

Day 13 Puppeteer API 介紹 - class: Keyboard, Mouse

  1. class: Keyboard

    Keyboard類別提供很多方法模擬實體鍵盤。
    像是在頁面上按下按鈕、輸入、釋放按鈕。

    更細部的控制,可以用keyboard.down、keyboard.up、keyboard.sendCharacter去手動產生像實體鍵盤的控制。

    下面這個例子是模擬按住shift去選擇和刪除一些文字

    //輸入Hello World!
    await page.keyboard.type('Hello World!');
    //按下方向左鍵
    await page.keyboard.press('ArrowLeft');
    //按住Shift
    await page.keyboard.down('Shift');
    //持續按方向左鍵到'world'這個字的長度
    for (let i = 0; i < ' World'.length; i++)
      await page.keyboard.press('ArrowLeft');
    //釋放shift
    await page.keyboard.up('Shift');
    //按下後退鍵
    await page.keyboard.press('Backspace');
    // 結果的文字會只剩下'Hello!'
    

    按下 A 的例子

    await page.keyboard.down('Shift');
    await page.keyboard.press('KeyA');
    await page.keyboard.up('Shift');
    
  2. class: Mouse
    Mouse會在主框架上用css pixels並從左上角開始

    每個page都有自己的Mouse,可以透過page.mouse拿到

    // 用 ‘page.mouse’ 去畫一個 100x100 的正方形.
    await page.mouse.move(0, 0);
    await page.mouse.down();
    await page.mouse.move(0, 100);
    await page.mouse.move(100, 100);
    await page.mouse.move(100, 0);
    await page.mouse.move(0, 0);
    await page.mouse.up();
    

上一篇
Day 12 Puppeteer API 介紹 - class: Worker
下一篇
Day 14 Puppeteer API 介紹 - class: Touchscreen, Tracing, Dialog
系列文
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲25

尚未有邦友留言

立即登入留言