概要
- ブックマークレットを用いて、RPA Challengeの入力作業を自動化するコードです。以下の動画で使われているものです。
実行環境
- Windows11
注意点
- プログラムの実行については、すべて自己責任で行ってください。実行により発生した、いかなる直接的または間接的被害について、作者はその責任を負いません。
結果
- 待機処理ありバージョンの実行結果は以下のとおりでした。
コード
待機処理なし
(function(){
var employees = [
// 各値を配列として入力する。
{
姓: '',
名: '',
会社名: '',
部署: '',
住所: '',
メールアドレス: '',
電話番号: ''
},
];
// class属性が"waves-effect col s12 m12 l12 btn-large uiColorButton"であるボタンを取得します。
var button = document.querySelector('.waves-effect.col.s12.m12.l12.btn-large.uiColorButton');
button.click();
// 従業員の数だけループ
for (var i = 0; i < employees.length; i++) {
var employee = employees[i];
// 各要素に対応する値を入力する
document.querySelector('[ng-reflect-name="labelEmail"]').value = employee.メールアドレス;
document.querySelector('[ng-reflect-name="labelLastName"]').value = employee.姓;
document.querySelector('[ng-reflect-name="labelPhone"]').value = employee.電話番号;
document.querySelector('[ng-reflect-name="labelCompanyName"]').value = employee.会社名;
document.querySelector('[ng-reflect-name="labelAddress"]').value = employee.住所;
document.querySelector('[ng-reflect-name="labelFirstName"]').value = employee.名;
document.querySelector('[ng-reflect-name="labelRole"]').value = employee.部署;
// class属性が"btn uiColorButton"であるボタンを取得します。
var button = document.querySelector('.btn.uiColorButton');
// ボタンをクリックします。
button.click();
}
})();
待機処理あり
(async function(){
var employees = [
// 各値を配列として入力する。
{
姓: '',
名: '',
会社名: '',
部署: '',
住所: '',
メールアドレス: '',
電話番号: ''
},
];
// class属性が"waves-effect col s12 m12 l12 btn-large uiColorButton"であるボタンを取得します。
var button = document.querySelector('.waves-effect.col.s12.m12.l12.btn-large.uiColorButton');
button.click();
// 遅延を加える関数を定義します。
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
// 従業員の数だけループ
for (var i = 0; i < employees.length; i++) {
var employee = employees[i];
// 各要素に対応する値を入力する
document.querySelector('[ng-reflect-name="labelEmail"]').value = employee.メールアドレス;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelLastName"]').value = employee.姓;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelPhone"]').value = employee.電話番号;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelCompanyName"]').value = employee.会社名;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelAddress"]').value = employee.住所;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelFirstName"]').value = employee.名;
await delay(100); // 0.1秒待機
document.querySelector('[ng-reflect-name="labelRole"]').value = employee.部署;
await delay(100); // 0.1秒待機
// class属性が"btn uiColorButton"であるボタンを取得します。
var button = document.querySelector('.btn.uiColorButton');
// ボタンをクリックします。
button.click();
await delay(100); // 次の入力前に0.1秒待機
}
})();