以前記事にしたPuppeteerについてです。 今更ですが、基本的な使い方を記事にしてみました。
サンプル
kintoneに自動ログインして、アプリ内に設置したボタンを自動クリックします。 今回はわかりやすさのためにヘッドレスをオフにしていますが、オンにするとPCの画面に表示せずにブラウジングすることができます。
コード
Puppeteerを利用しています。 npm等を用いてインストールします。
・Puppeteerのインストール
$ npm i puppeteer
実行用のコードです。
・sample.js
(async()=\>{constpuppeteer=require('puppeteer');consturl='https://\*\*\*\*.cybozu.com/k/\*\*\*\*/';//目的のページのURLconstbasicUser=false;//Basic認証のユーザー名(設定していない場合はfalse)constbasicPassword=false;//Basic認証のユーザー名(設定していない場合はfalse)constuser='\*\*\*\*';//kintoneのログインユーザー名constpassword='\*\*\*\*';//kintoneのログインパスワードconstbrowser=awaitpuppeteer.launch({//ブラウザ起動headless:false,//ヘッドレス設定(アニメーション的にわかりやすくするため。実用では不要。)slowMo:50,//スローモーション(アニメーション的にわかりやすくするため。実用では不要。)defaultViewport:null//viewport設定(アニメーション的にわかりやすくするため。実用では不要。)});constpage=awaitbrowser.newPage();if(basicUser&&basicPassword){//Basic認証(設定している場合)awaitpage.setExtraHTTPHeaders({
Authorization:`Basic ${new Buffer.from(`${basicUser}:${basicPassword}`).toString('base64')}`});
}awaitpage.goto(url);//ログインページへ遷移awaitpage.type('input[name="username"]', user);//kintoneのユーザー名入力awaitpage.type('input[name="password"]', password);//kintoneのログインパスワード入力await(awaitpage.$('.login-button')).click();//ログインボタンクリックawaitpage.waitForNavigation({waitUntil:"domcontentloaded"});//目的のページへの遷移を待機awaitpage.waitFor('.alert-button');awaitnewPromise(resolve=\>setTimeout(resolve,1000));//待ち時間(アニメーション的にわかりやすくするため。実用では不要。)await(awaitpage.$('.alert-button')).click();//アプリに設置したボタン(class名:「alert-button」)をクリック})();
実行
シェルを用いて、sample.jsがあるディレクトリで下記を実行します。
$ node sample.js
アプリ設置したレコード更新ボタンなどを自動でクリックするといった使い方もできますね。 kintone REST APIを使えばkintone外部からも大抵の操作はできますが、kintone内部用に作成した機能をそのまま使いたいときには便利かもしれません。