2
0

More than 1 year has passed since last update.

TypeInto(文字を入力)アクティビティは苦手な文字がある(「特殊キーの構造エラーです」の対策まとめ)

Last updated at Posted at 2021-11-21

はじめに

先日、実務で使用しているロボットが TypeInto アクティビティでエラー発生してしまったことがありました。
そのとき調べて初めて知った仕様があったため、備忘的にまとめておきます。

結論から

[(角カッコ)を入力する際は気を付けましょう!
100%エラーになってしまうケースが存在します。

検証環境

  • UiPath
    • Studio 2021.10.3 Community License
  • 使用パッケージ
    • UiPath.UIAutomation.Activities v21.10.3

やりたいこと

メモ帳に以下の文言を入れたい!ただそれだけです。
[TEST]
[ という文字が含まれていれば、どんな文言でも構いません([ の位置も任意)
image.png

文字を入力ですから、シンプルに TypeInto アクティビティを使うだけですね。
早速検証してみたいと思います!

入力方式の3パターン

UiPath の TypeInto アクティビティは、3パターンの入力方式があります。

  1. デフォルト
  2. ウィンドウメッセージを送信
  3. 入力をシミュレート

それぞれの違いについてはUiPath社様が公式ドキュメントにまとめて下さっているので、詳しくは以下をご参照下さい。
私は細かな違いを忘れた際に、よく以下のページを参照して確認するようにしています。

※上記サイトから抜粋
image.png

入力メソッド:デフォルト

まずは基本となる入力方式 デフォルト で試してみます。
image.png
image.png

いざロボット実行!

ロボット実行結果

エラーになりました…。
image.png

解説

なんだかよくわからないエラーですね。
調べてみると、UiPath Forum で同じ事象が取り上げられていました。

※上記サイトから抜粋
image.png

理由はわかりませんが、[ が特殊記号扱いになるようでエラーになってしまうようです。
[[[ に置換して再実行してみます。
image.png

正常動作し、メモ帳に [TEST] と入力されました!
image.png

入力方式「デフォルト」の場合、"[" の入力は "[[" に置換しないと100%エラーが発生する

入力メソッド:ウィンドウメッセージを送信

次は入力方式 ウィンドウメッセージを送信 で同じことを試してみます。
image.png
image.png

いざロボット実行!

ロボット実行結果

同じくエラーになりました…。
image.png

解説

入力方式「デフォルト」と同様、[[[ に置換して再実行してみます。
image.png

正常動作し、メモ帳に [TEST] と入力されました!
image.png

入力方式「ウィンドウメッセージを送信」の場合、"[" の入力は "[[" に置換しないと100%エラーが発生する

入力メソッド:入力をシミュレート

最後に入力方式 入力をシミュレート でも同じことを試してみます。
image.png
image.png

いざロボット実行!

ロボット実行結果

エラーになるかと思いきや、正常動作しメモ帳に [TEST] と入力されました!
image.png

解説

入力方式「入力をシミュレート」の場合、"[" は正常に入力可能

UiAutomationNext ではどうなる?

せっかくなので UiAutomationNext でも動作結果を検証してみます。
UiAutomationNext で文字入力したいときは NTypeInto アクティビティを使用します。

検証結果

TypeInto アクティビティと、NTypeInto アクティビティで、動作の違いはありませんでした。

入力文字列:[TEST]

  • デフォルト:エラー
  • ウィンドウメッセージを送信:エラー
  • 入力をシミュレート:正常

image.png

入力文字列:[[TEST]

  • デフォルト:正常
  • ウィンドウメッセージを送信:正常
  • 入力をシミュレート:正常

image.png

※「入力をシミュレート」の場合、メモ帳への入力文字列がそのまま [[TEST] となるので注意です
image.png

結論まとめ

[ という文字を、TypeInto アクティビティ、または NTypeInto アクティビティで入力したときの動作表。

入力メソッド 動作結果 対策
デフォルト NG "[[" と入力
ウィンドウメッセージ NG "[[" と入力
シミュレート

「入力をシミュレート」と互換性が無いアプリケーションやWebサイト
かつ、
[ が入力される可能性があるフィールド
については、[[[ に置換するロジックを仕込んでおくと良いと思います。

私が実務でこのエラーに遭遇した時は、入力対象のアプリケーションが「入力をシミュレート」に対応していなかったので、上記ロジックを入れることで対処しました。

最後に

同様の現象が、[ 以外の文字でも発生するのでしょうか…?
ご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。
(わかり次第、記事をアップデート予定です)

関連リンク

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0