ブラウザのソースの取得
IEでソースが見れない、右クリックが禁止されているなどありますよね?
UiPathだと、その問題を解決してくれます。
1. アクティビティの配置
以下の3つを配置します
- Find Children
- Assign
- Write Text File
※ Find Childrenの変わりにFind Elementでもいいけど、htmlタグが複数個ある場合は取りこぼしが発生します。
Write Text Fileの代わりにLog Messageなどでも構いません。
2. Find Childrenの設定
Find Childrenのプロパティを設定します。
- Filter :
"<webctrl tag='html' />"
- Selector :
"<html />"
- WaitForReady :
"Complete"
- Scope :
"FIND_DECENDANTS"
- Children :
[elList]
※ Selectorの<html />
は、ブラウザのタイトルを入れたほうが尚よい
"<html title="タイトル名" />"
3. Assignの設定
取得したHTMLの一覧からソースを取得します
- To :
[html]
Value :
String.Join(vbCrLf, elList.Select(function(el) el.Get("outerhtml").ToString))
- elList から Function(el)でelに一件ずつ取得します
( ForEach el in elListと同じ) - el(UiElement) からGet("outerhtml")でouterhtmlの属性情報を取得して、ToStringで文字列にします。
- String.Joinで、取得したouterhtmlの配列を、改行コード(vbCrLf)で改行して1列の文字列にします。
- elList から Function(el)でelに一件ずつ取得します
4. Write Text Fileの設定
HTMLソース(outerhtml)をファイルに出力します。
- FileName :
"Source.html"
- Text :
html
5. 動作確認
ブラウザ(IE)を開いた状態で、UiPathを実行するとプロジェクトフォルダに"Source.html"が出力されていると思います。
自転車の所要時間と距離を取得するロボを作ってみた
保活で家から保育園までの距離と時間をそれぞれ調べたかったので、UiPathでロボを作ってみました。
そのロボのツイートが反響だったので少し手直しして公開します。
エラーとか出るかもしれませんが、コメントいただければできる限り対応します。
http://fedorax.sakura.ne.jp/rpa/BicycleRoute.zip
1. ルート一覧(Excel)を編集
Zipファイルに含まれるRoute.xlsxをまずは開いてください。
初期設定では、山手線の駅名がずらっと並んでおりますが、
ここに目的地(Addr)の列に住所を列挙してください。
終わったら保存して閉じます。
2.Main.xamlをUiPathで起動する
Main.xamlをUiPathで開いて実行します。
3.出発地を入力する
実行すると入力ダイアログが表示されるので、出発地の住所を入力します。
4.完了まで待つ
OKボタンを押すと、勝手に出発地から目的地までの距離と時間を取得します。
ロボの実行が完了すると以下のメッセージが表示されます。
5.結果ファイルを確認する
Route.xlsxを開いて、結果を確認します。
ロボが取得に失敗した場合、"取得失敗"と出力されます。
TimeとKyoriの項目を削除してRoute.xlsxを保存し、再実行してください。
Lan工事
憧れだった、宅内LAN。
無線があるじゃんと言われるかもしれないが、やっぱり、安定して繋がっている有線の方が安心する。って事で、家の空管(CD管)にLANを通してみた。
まずコンセントカバーを外します。設置箇所は右下のアンテナコンセントの下の部分。
黒いアンテナコンセントを外すと、右下にオレンジ色の管(CD管)がある事を確認する。
ここに、通線ワイヤーを送り込みます。
そうすると、集約部分からワイヤーが出てきました。
LANケーブルは、あまり速度が変らないので、カテゴリ5eのLANケーブルを用意。
こんな感じで通線ワイヤーとLANケーブルをテープで固定します。
そしたら送り込んだコンセントから、通線ワイヤーを引きます。
(たまに、LANケーブルが出てくれなくなるので、何度か、引っ掛かりを解消しながら作業しました。)
先程、結線した部分が出てきました。
通線ワイヤーと結線したテープを外して、空き穴に通します。
こんな感じでまとめて、LANコンセントかコネクタを後で圧着できるようにしておきます。
この続きは別で記事にします。
UiPathでメッセージを改行して表示する
UiPathのメッセージボックスで改行して表示する方法です。
メッセージボックス (Messsage Box)
アクティビティの一覧から「メッセージボックス(Message Box)」を探します。
[システム] > [ダイアログ] > [メッセージボックス]にあります。
メッセージボックス (Messsage Box)アクティビティの配置
中央のデザイナーパネルにメッセージボックスまたはMessage Boxのアクティビティをドロップします。
メッセージ文言で改行コードを挿入する
メッセージを改行させる部分に vbLfを挿入します。
vbLfの代わりに vbCrLfでも構いません。
設定例:"1行目"& vbLf &"2行目"
実行する
[F5]キーまたは、実行ボタンを押して結果を確認しましょう
UiPath で コンソール出力する
UiPathでStudioのOutputパネルにテキストを出力する方法です。 - Studioの開発から実行された時に、指定されたテキストが出力されます。 - Robotから実行された場合、ログファイルにはテキストが出力されません。
1行を書き込み(Writeline)アクティビティ
アクティビティの一覧から「1行を書き込み(Write Line)」を探します。
[プログラミング] > [デバッグ] > [1行を書き込み]にあります。
デフォルト場合、[お気に入り]の直下にもあります。
1行を書き込みアクティビティは、デバッグメッセージの出力として使いましょう。
ログとして残したいメッセージは1行を書き込みではなく、メッセージをログアクティビティを使います。
1行を書き込み(Writeline)アクティビティの配置
中央のデザイナーパネルに1行を書き込みまたはWrite Lineのアクティビティをドロップします。
出力テキストの設定
出力パネルに出力されるテキストを設定します。
実行する
[F5]キーまたは、実行ボタンを押して結果を確認しましょう
UiPathのメッセージダイアログで選択されたボタンを取得する
UiPathのメッセージダイアログで選択されたボタンを取得する方法です
変数の定義
選択されたボタンの値を取得するための変数「retVal」を定義します。
メッセージボックスアクティビティの配置
メッセージボックス(Message Box)のアクティビティを2つ配置します。
メッセージボックスの配置方法は、以下の記事をご覧ください。 fedorax.hatenablog.com
確認メッセージの編集
確認メッセージのプロパティを変更します。 - テキスト (必須) : 表示するメッセージ本文を入力してください。 (例 : "ボタンを選択してください。") - 出力 (必須) : 選択されたボタンの値を取得する変数を設定してください。 (例 : retVal) - キャプション : メッセージダイアログのタイトル ( 例 : "確認" ) - ボタン : ボタンの種類( OK / OKCancel / YesNoCancel / YesNo )
結果メッセージの編集
確認メッセージで選択されたボタンを表示するメッセージを変更します。 - テキスト : "選択されたボタンは【" & retBtn &"】です"
実行する
[F5]キーまたは、実行ボタンを押して結果を確認しましょう
UiPathでメッセージダイアログのボタンを変更する
UiPathでメッセージウインドウのOKボタンを変更する方法です。
メッセージボックスの配置
メッセージボックス(Message Box)のアクティビティが配置している状態から始めます。
メッセージボックスの配置方法は、以下の記事をご覧ください。 fedorax.hatenablog.com
ボタンの種類変更
メッセージボックスのプロパティで、ボタンの値を変更します。
実行する
[F5]キーまたは、実行ボタンを押して結果を確認しましょう