0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者】Puppeteerでよく使うコードベスト3

Posted at

はじめに

毎月末になると、ルーティンで作業工数の入力をしています。
JavaScriptで半自動で入力していて、5分ほどで入力出来ています。
が、憂鬱すぎるので全自動化することにしました。
ググって最初に目に付いたPuppeteerを利用します。
実際に利用してみてベースとなるコード、更によく使うコードがわかったのでQiitaに残します。

コード

基本のコード

kihon.js
const puppeteer = require('puppeteer');
// ID・アカウント認証する時はここでID・アカウント情報を読み込む↓
// 後述
// ID・アカウント認証する時はここでID・アカウント情報を読み込む↑

(async () => {
    const browser = await puppeteer.launch({
        headless: false,  // ブラウザの動きを表示
        slowMo: 50  // puppeteerの操作を遅らせる
    })
    const page = await browser.newPage()

    // ページを開く
    await page.goto('https://www.google.com/')

    // 必要な処理を書く↓
    // 後述
    // 必要な処理を書く↑

    // ブラウザを閉じる
    await browser.close()
})()

ID・アカウント認証する時はここでID・アカウント情報を読み込む

const {USER, PWD} = require('./config.json'); // 認証が必要であれば別ファイルのconfigファイルから読み込む
config.jsonの中身は以下
config.json
{
    "USER":"xxx",
    "PWD":"xxx"
}

必要な処理(よく使うコード)

今回だと使うコードは決まっていて、必要な値を入力して、ボタンをクリックして登録するだけでしたので以下の操作で事足りました。

// 指定した時間待つ
await page.waitFor(10000); // ミリ秒

// 入力
await page.type("#IdUser", 'userName'); // セレクタ,入力文字。
await page.type("#IdUser", USER); // 変数の場合

// クリック
await page.click("#loginButton"); // セレクタ

// テキスト取得
const text = await page.$eval('td.timeHour', text => text.textContent) // セレクタ

最終的なコード

kihonプラスα.js
const puppeteer = require('puppeteer');
// ID・アカウント認証する時はここでID・アカウント情報を読み込む
const {USER, PWD} = require('./config.json'); // 認証が必要であれば別ファイルのconfigファイルから読み込む

(async () => {
    const browser = await puppeteer.launch({
        headless: false,  // ブラウザの動きを表示
        slowMo: 50  // puppeteerの操作を遅らせる
    })
    const page = await browser.newPage()

    // ページを開く
    await page.goto('https://www.google.com/')

    // 必要な処理を書く
    // 指定した時間待つ
    await page.waitFor(10000); // ミリ秒
    // 入力
    await page.type("#IdUser", USER); // 変数の場合
    // クリック
    await page.click("#loginButton"); // セレクタ
    // テキスト取得
    const text = await page.$eval('td.timeHour', text => text.textContent) // セレクタ

    // ブラウザを閉じる
    await browser.close()
})()

参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?