WinActorでChromeを操作する その3(Gmailログイン)

WinActorからChromeを操作し、Web版のGmailを操作できます。画像マッチングのためウィンドウサイズは固定にしたいため、最大化しています。画面サイズ、位置設定で固定も可能です。

シナリオを作成

値はすべて変数にしました。値をシナリオ実行時に変更することはありませんが、メンテナンス用に変数を定義しました。各処理をグループでわけました。

ChromeでGmailを表示する

ChromeでGmailのURLを開きます。URLは

メールアドレスを入力

メールアドレスを入力して「次へ」をクリックします。Xpathを指定します。

GoogleアカウントのXPath → //*[@id="identifierId"]

次へボタンのXPath →  //*[@id="identifierNext"]/content/span

パスワードを入力してログイン

パスワードを入力して 「次へ」をクリックします。Xpathを指定します。

GoogleアカウントのXPath → //*[@id="password"]/div[1]/div/div[1]/input

次へボタンのXPath →  //*[@id="passwordNext"]/content/span

Gmailにログインできました

ブラウザを操作するときの注意点

WinActorでブラウザを操作するとき、PCのスペックや通信環境の問題でページが表示しきれていない状態で、シナリオの各スクリプトが動く場合があります。その際にはエラーになります。

指定時間待機でエラーを防ぐ

ページを表示する待ち時間を各ノードの間に挿入する必要があります。待機時間はマチマチですが、多めにすれば安定性はあがると思います。また、値の設定とクリックの間にも入れると、処理時間が長くなりますが安定性は上がると思います。

「指定時間待機」ではなくて「画像マッチング」で画面表示を確認

Google側のデザインが変更される懸念もありますが、「画像マッチング」で画面表示を待つことも可能です。

アクション「状態チェック」の場合は、一致する画像があれば「true」を、なければ「false」を状態取得結果の変数にセットします。その他のアクションは、一致する画像がないとアクション例外を発生します。

結果の変数を判定して処理を分岐する必要がなく、アクション例外を発生させて、以降の処理を中止したければ「マウス移動のみ」のアクションを使用すればOKです。

ただし、画像マッチングする対象の要素は、「マウスオーバー」で変更しないものにしましょう。マウスの位置によって、結果が変わってしまいます(事前にマウスを移動すればOKですが)。

「アカウントの保護」画面の対応

Googleアカウントの設定や、利用環境によっては、ただしいパスワードでログイン後、Gmailの受信トレイではなく、「アカウントの保護」画面が稀に表示されます。

画像マッチングでこの画面が表示されたことを認識したら、XPathで完了ボタンをクリックすれば、受信トレイが表示されます。

完了ボタンのXPath → //*[@id="yDmH0d"]/c-wiz[2]/c-wiz/div/div[1]/div/div/div/div[2]/div[3]/div/div[2]/div

同じPCの場合、一度、完了したら次回からでないかもしれません。(普段と違うログイン時にGoogleが検知して表示している?)

Gmailの特定のラベルを指定したURLを開く

ログイン前にURLを指定しても、ログイン処理を経由すると受信トレイのトップにリダイレクトされます。よって、ログイン後に、再度、WinActorで特定のURLを表示するようにします。この動きはスプレッドシートでも同様で、いきなり特定のセルを指定することはできません。

以上です。

Systemrpa, winactor

Posted by zzz