※プライベート端末にUiPathを入れていないため、文字のみで失礼します。
だいぶ間が空いてしまいました。
業務でUiPathを使用しているのですが、普段皆様の知識をお借りしているため、
備忘録兼誰かの助けになれば、と投稿します。
"ブラウザーを開く"アクティビティ
その名の通りブラウザを開くアクティビティです。
このアクティビティには必須のプロパティがいくつかあります。
- URL
- BrowserType
どちらもそのままですが…。
2のBrowserTypeで指定したブラウザで、1で指定したURLを開きます。
また、出力結果としてブラウザ型の変数にそのブラウザを格納することができます。
ブラウザへのテキスト入力やクリック操作
Webアプリなんかを自動化する場合、どうやっても避けては通れない部分ですね。
私事ですが、前任の方から引き継いで初めてUiPath、ならびにRPAを触っているため
もしかしたら間違った知識かもしれませんが…。
たとえばこんなページがあったとして・・・
<label>ユーザー名</label>
<input type="text" name="username" id="username" placehplder="例)FooBar"/>
<label>パスワード</label>
<input type="password" name="password" id="password" />
<button type="button" class="btn postButton" id="postButton" >送信</button>
**テキストを入力(TypeInto)**アクティビティを使う際には、セレクターは大体以下のような指定になると思います。
ユーザ名:"<webctrl id='username'>"
パスワード:"<webctrl id='password'>"
IDがページの中でユニークだからできる指定ですね。
name='username'
の指定でもおそらく動くとは思います。
送信ボタンを押す際は、UI Automation->要素->マウス->クリックのセレクターを
"<webctrl id='postButton'>"
ですかね。上記以外にボタンがなければ
class='btn postButton'
の指定でも平気かもしれません。
さて、ここで気にしなければいけないことですが。
webctrlでの指定はブラウザーを開くのDoの中にアクティビティを入れるということです。
キャプチャがないので大変申し訳ありませんが・・・
ブラウザーを開くDo {
テキストを入力
テキストを入力
クリック
}
であれば、問題ないのですが・・・
ブラウザーを開く Do{
}
テキストを入力
テキストを入力
クリック
の場合だと、
セレクターが有効ではありません(SelectorNotFoundException)
が表示されたり
想定とは異なる場所にテキストを入力する
恐れがあります。
ブラウザーを開いた後の処理のため、Doの中にいなくてもいいじゃん?
私もそう思いました。それで動くと思ったのですが、きちんと動作せず…。
Doの中に入れ、webctrlでの指定を行うことで、正常に動作しました。
ウェブコントロールというだけあって、そういう縛りがあるのかな、という理解をしております。
(もし正しい知識をお持ちの方は教えていただければ、と・・・)
大した内容は書いておりませんが、今回は以上とさせていただければと思います。
最近は、UiPathだけでは難しい場合、JavaScriptを挿入したりして試行錯誤しております。
とはいっても、もっぱらquerySelectorで指定し、idを付与しているだけですが。
それを利用してあるページのTRを丸ごと引っこ抜いた話や
パブリッシュについてなんかも備忘兼学習内容として投稿させてもらえればと思います。
それでは。