今回はSalesforceをWinActorで自動操作するシナリオについて解説します。
WinActorを使うことでWebブラウザ上で動作するサービスは基本的に自動操作が可能です。
今回、Salesforceを題材に、決められた手順に従って商談レポートを作成するシナリオを作成しました。
このシナリオについて解説します。
シナリオ全体像と設計方針
早速シナリオの全体像について見てみましょう。(クリックすると拡大します。なお、バージョン5で作成したので、現在のバージョン7とは一部ライブラリの名称が異なります)
画像だけ見ると、シナリオがやや長いので一瞬ぎょっとしてしまうかもしれませんが、シナリオについてよく見てみると大半が画像マッチングで構成されており、WinActorの基本的な動作でシナリオが動いているのが分かります。
実際の動作は以下の通りです。
今回、設計方針としては、実際にsalesforceをつかって商談レポートを作成するフローを動画で撮影した後、その動作を再現するように、主に画像マッチングを使用してシナリオを作成しました。
画像マッチングを使用することで、Web上のあらゆる動作をWinActorにて再現することができます。
汎用性が高いメリットはありますが、一方で実行環境やサービス画面に依存するので、WinActorを実行する環境をあらかじめ決めておくことや、見た目が高頻度で変わってしまうサービスは避けるといった工夫が必要です。
シナリオ作成のためのTIPS
指定時間待機・ウィンドゥ状態待機を多めに使用する
フローチャート画像を見るとわかるように、動作に応じて適宜「指定時間待機」「ウィンドゥ状態待機」が使用されているのが分かります。
特にWebサービスをWinActorで実行する場合、ネットワーク速度や実行状況に応じて画面の反映が異なるので、通常の実行状況よりも多めに指定時間待機やウィンドウ状態待機を使用して、バッファを多く設定するようにしましょう。
要素をドラッグ&ドロップで追加する方法
実行デモを見てもらうとをわかる通り、項目をドラッグ&ドロップで追加しているのが分かります。
この実装は、
「12_マウス関連」→「マウスドラッグ(画像マッチング箇所へ)」「マウスドラッグ1」「マウスドラッグ2」
を使用します。(フローチャートの画像はバージョン5のため名称が一部異なります)
それぞれの使い分けは今の通りです。
ライブラリ名 | 内容 | 備考 |
---|---|---|
マウスドラッグ(画像マッチング箇所へ) | 現在のマウス位置から直前の画像マッチング箇所にマウスをドラッグ | 直前の画像マッチングが失敗している場合は移動しない |
マウスドラッグ | 現在のマウス位置から指定された位置までマウスをドラッグ (x座標とy座標を別々で指定) |
絶対座標と相対座標で指定可能 |
マウスドラッグ2 | 現在のマウス位置から指定された位置までマウスをドラッグ (x,y)=100,200 |
同上 |
いずれのライブラリも現在のマウス位置からドラッグする動作のため、あらかじめマウスを移動しておく必要があります。
普段のシナリオ作成ではあまりマウス位置を考える必要がない場合が多いですが、このシナリオではマウス位置に注意する必要があります。
また、シナリオ作成環境と実行環境はなるべく一致させることで、事前にエラーを防ぐことができます。
Webサービス作業のWinActor自動化で確認しておくべきポイント
WebサービスをWinActorで操作する場合、以下のフローチャートに沿ってWebサービスを確認し、それに合わせてライブラリを選択するとよいでしょう。
- 操作対象の要素にidやclassが割り振られていて、その情報を取得したい→「IE操作(Debug class名指定 情報出力)」「IE操作(Debug id指定 情報出力)」
- 操作対象の要素にidやclassが割り振られていて、その要素をクリックしたい→「クリック(IE)」「クリック(Chrome)」(自動記録)
- 上記では難しい場合→画像マッチング
以前、以下の記事でも解説しましたが、ウェブページで複数情報を取得する場合は「IE操作(Debug class名指定 情報出力)」が一番動作が早くお勧めです。
[sc_blogcard url=”https://www.venture-net.co.jp/rpa/winactor-sansan/”][sc_blogcard url=”https://www.venture-net.co.jp/rpa/winactor-webads/”]
また、クリックなどの動作も基本的に自動記録や要素指定、Xpath指定などでクリックすることをお勧めします。
今回は画像マッチングにフォーカスを当てて作成したため、画像マッチングが多用されていますが、画像マッチング以外で実装可能であればそちらの方法をお勧めします。
先ほども述べましたが、画像マッチングは汎用性は高いものの、UI変更などに弱く、運用保守の観点からも定期的なチェックが必要になります。ですので、画像マッチングは最後の手として考えておくのがよさそうです。