はじめに
先日、実務で使用しているロボットが TypeInto
アクティビティでエラー発生してしまったことがありました。
そのとき調べて初めて知った仕様があったため、備忘的にまとめておきます。
結論から
[
(角カッコ)を入力する際は気を付けましょう!
100%エラーになってしまうケースが存在します。
検証環境
- UiPath
- Studio 2021.10.3 Community License
- 使用パッケージ
- UiPath.UIAutomation.Activities v21.10.3
やりたいこと
メモ帳に以下の文言を入れたい!ただそれだけです。
[TEST]
※[
という文字が含まれていれば、どんな文言でも構いません([
の位置も任意)
文字を入力ですから、シンプルに TypeInto
アクティビティを使うだけですね。
早速検証してみたいと思います!
入力方式の3パターン
UiPath の TypeInto
アクティビティは、3パターンの入力方式があります。
- デフォルト
- ウィンドウメッセージを送信
- 入力をシミュレート
それぞれの違いについてはUiPath社様が公式ドキュメントにまとめて下さっているので、詳しくは以下をご参照下さい。
私は細かな違いを忘れた際に、よく以下のページを参照して確認するようにしています。
入力メソッド:デフォルト
いざロボット実行!
ロボット実行結果
解説
なんだかよくわからないエラーですね。
調べてみると、UiPath Forum で同じ事象が取り上げられていました。
理由はわかりませんが、[
が特殊記号扱いになるようでエラーになってしまうようです。
[
を [[
に置換して再実行してみます。
入力方式「デフォルト」の場合、"[" の入力は "[[" に置換しないと100%エラーが発生する
入力メソッド:ウィンドウメッセージを送信
次は入力方式 ウィンドウメッセージを送信
で同じことを試してみます。
いざロボット実行!
ロボット実行結果
解説
入力方式「デフォルト」と同様、[
を [[
に置換して再実行してみます。
入力方式「ウィンドウメッセージを送信」の場合、"[" の入力は "[[" に置換しないと100%エラーが発生する
入力メソッド:入力をシミュレート
最後に入力方式 入力をシミュレート
でも同じことを試してみます。
いざロボット実行!
ロボット実行結果
エラーになるかと思いきや、正常動作しメモ帳に [TEST]
と入力されました!
解説
入力方式「入力をシミュレート」の場合、"[" は正常に入力可能
UiAutomationNext ではどうなる?
せっかくなので UiAutomationNext でも動作結果を検証してみます。
UiAutomationNext で文字入力したいときは NTypeInto
アクティビティを使用します。
検証結果
TypeInto
アクティビティと、NTypeInto
アクティビティで、動作の違いはありませんでした。
入力文字列:[TEST]
- デフォルト:エラー
- ウィンドウメッセージを送信:エラー
- 入力をシミュレート:正常
入力文字列:[[TEST]
- デフォルト:正常
- ウィンドウメッセージを送信:正常
- 入力をシミュレート:正常
※「入力をシミュレート」の場合、メモ帳への入力文字列がそのまま [[TEST]
となるので注意です
結論まとめ
[
という文字を、TypeInto
アクティビティ、または NTypeInto
アクティビティで入力したときの動作表。
入力メソッド | 動作結果 | 対策 |
---|---|---|
デフォルト | NG | "[[" と入力 |
ウィンドウメッセージ | NG | "[[" と入力 |
シミュレート | 〇 |
「入力をシミュレート」と互換性が無いアプリケーションやWebサイト
かつ、
[
が入力される可能性があるフィールド
については、[
を [[
に置換するロジックを仕込んでおくと良いと思います。
私が実務でこのエラーに遭遇した時は、入力対象のアプリケーションが「入力をシミュレート」に対応していなかったので、上記ロジックを入れることで対処しました。
最後に
同様の現象が、[
以外の文字でも発生するのでしょうか…?
ご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。
(わかり次第、記事をアップデート予定です)
関連リンク
-
UiPath ドキュメントポータル:文字を入力 (Type Into) アクティビティ
https://docs.uipath.com/activities/lang-ja/docs/type-into -
UiPath ドキュメントポータル:入力メソッド
https://docs.uipath.com/studio/lang-ja/docs/input-methods -
UiPath Forum:文字を入力アクティビティのエラーについて
https://forum.uipath.com/t/topic/265539