Vision AIのコントロール
Vision AIは、コンピュータビジョンとマシンラーニングに基づくアプローチであり、基盤となる技術に関係なく、インターフェース(コントロール)を視覚的に認識し、自動化することができます。Vision AIでスキャンをしたコントロールは、Tosca Cloudのコントロールと同様に操作することができます。
このトピックでは、以下の情報を提供いたします。
モバイルアプリケーションのスキャンがサポートまたは認識しない場合、Vision AIを使用してモバイルアプリケーションのコントロールを操作することができます。詳細情報については、このナレッジベースの記事をご参照ください。
スクロール可能なコントロールの追加パラメータ
これらのステアリング・パラメータを使用して、長いリスト、ツリー、テーブルのタイムアウトを増やすことができます。Tosca Cloudの同期タイムアウトを調整する必要がある場合もあるので、ご注意ください。
以下の表に、スクロール可能なコントロールのステアリングパラメータを示します。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
スクロール速度 |
Vision AIのスクロール速度を指定します。デフォルト値を大きくするとスクロールが速くなります (例:2.0) 。デフォルト値を小さくするとスクロールが遅くなります(例:0.5)。 |
1.0 |
|
ScrollTimeout |
Vision AIがコントロールを探すために上下にスクロールする時間を指定します。 秒単位で入力してください。 |
10 |
|
ScrollDownTimeout |
下方向にスクロールする際のScrollTimeoutを上書きします。 |
|
|
ScrollUpTimeout |
上方向にスクロールするためのScrollTimeoutを上書きします。 |
|
テーブルステアリングの追加パラメータ
テーブルを自動化したい場合は、Vision AIがテーブルの内容を検出する方法を指定する追加のパラメータを変更することができます。
操作方式
Methodパラメータは、Vision AIがテーブルセルをスクリーン上のピクセルと区別する方法を定義します。このパラメータには以下の値を使用できます。
-
Gridlines - Vision AIは、テーブルの境界内にある長い縦線と横線を検索します。このメソッドは、行のテキストの一番下を可能な行として認識する可能性があり、その結果、余分な空の行が検出されます。この場合MergeEmpty パラメータを使用して、余分な空の行を取り除くことができます。
-
Words - Vision AIは、グリッドラインではなく、周囲のピクセルと異なるピクセルを検索します。この方法では、単語間の垂直方向と水平方向のギャップをセルの境界として使用します。
-
CountrolBounds - Vision AIは、各コントロールとテキストブロックの境界を検索します。この方法では、これらのコントロール間の垂直方向と水平方向のギャップをセルの境界として使用します。
-
Auto-Vision AIは、Glidlinesと Wordsのメソッドを組み合わせて使用します。
列しきい値と行しきい値の操縦
ColumnThresholdパラメータとRowThresholdパラメータは、Vision AIが行や列を選択するときの感度を制御します。これらのパラメータの値は0から100の範囲です。これらは、Vision AIが、操縦する行または列を検出しなければならないパーセンテージのしきい値を指定します。値が小さいほど行や列の使用量が多く、値が大きいほど行や列の使用量が少ないことを意味します。
デフォルト値のAutoは、Methodパラメータに基づいて最適な値を選択します。
-
Gridlines方法では、30です。
-
Words方法では、15です。
-
ControlBounds方法では、1です。
MergeEmptyを操縦する
Vision AIは余分な空の行や列を検出する場合があります。WordsメソッドまたはControlBoundsメソッドを使用している場合、このようなことが頻繁に起こります。
MergeEmptyパラメータは、これらの空の行や列がテーブルの他のコンテンツにマージされるタイミングを指定します。
-
このパラメータを「Yes」に設定するとマージがオンになり、「No 」に設定するとオフになります。
-
Gridlines方法を使用して、マージをオフにする場合は、このパラメータを「Auto」に設定します。それ以外のメソッドでは、マージをオンにします。
HeaderColumnとHeaderRowを操縦する
これら2つのパラメータは、標準的なテーブルと同じように機能します。ヘッダーに使用する行番号や列番号を選択できます。
これらの値を設定するには、「Content Preview」でセルをクリックします。
HeadersContainを操縦する
正確なヘッダー行番号は検出場所によって異なることがあります。この場合、HeaderRowパラメータを使用することはできません。代わりに、HeadersContainパラメータを、テーブルのヘッダー行からのテキスト値に設定します。Vision AIは、このテキスト値を含む行をテーブルから検索し、ヘッダー行として使用します。
DecisiveColumnsを操縦する
このパラメータは標準的なテーブルと同じように機能します。これによって$lastContentRowおよび$firstEmptyRowセレクタの列を指定します。デフォルト値は*で、すべての列が使用されることを意味します。
IgnoreInvisibleTableContentを操縦する
このパラメータはVision AIテーブルには影響しません。
ColumnMinGapおよびRowMinGapの操縦
これらのパラメータは、列と行の間の最小ピクセル数を指定します。デフォルト値は0です。
これらのパラメータの値を少しずつ大きくして、間違って分割された列や行の数を減らしてください。
Vision AIによるステアリングテーブルの制限
現在、Vision AI はステアリングテーブルの以下のオプションとプロパティをサポートしていません。
-
テーブル内でのテーブルの水平スクロール。Vision AIで指定した行やセルが見つからない場合、テーブルを縦方向にのみスクロールします。横スクロールには対応していません。
-
コンテキストメニューのCreate Embedded <Control-Type> controlオプションを使用して、セルに埋め込みコントロールを定義します。If you want to use an embedded control, scan it separately in Tosca XScan.モジュールセクションで、このコントロールをCellモジュール属性にドラッグします。
-
列優先のステアリングは行ラベルをサポートしません。つまり、テーブル制御の下でセカンダリステアリングを使用する場合、行ラベルをセル名として使用することはできません。例えば、列を選択してからセルを選択した場合、1$、2$、$lastなどの数値インデックスだけがサポートされます。
-
Content Previewペインにはマージされたセルは表示されません。マージされたセルのグリッド線が表示されます。
入力のための追加パラメータ
Vision AIでコントロールをスキャンした後、タイピングメカニズムを制御するステアリングパラメータを追加することができます。これらのステアリングパラメータは、ControlType プロパティのInputまたは Dropdown を持つコントロールにのみ適用されます。
Vision AIは、特殊キーの組み合わせに少し異なる構文を使用することに注意してください。特別なキーの組み合わせを送信するには、{SENDKEYS}コマンドの代わりにテストステップで{VSKEYS}コマンドを使用してください。
入力制御用のステアリングパラメータを追加する
以下の表は、ControlTypeプロパティがInputに設定されたコントロール用に使用可能なステアリングパラメータの一覧です。これらのパラメータを指定しない場合、タイピング機構はデフォルト値に従って動作します。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
キー遅延 |
Vision AIがキーアップまたはキーダウンの各操作後に待機する時間を指定します。 ミリ秒単位で入力してください。 |
10 |
|
HoldDelay |
Vision AIがキーを選択して保持する時間を指定します。 ミリ秒単位で入力してください。 |
0 |
|
SelectTextKeys |
Vision AIが、テストステップ値で指定した値を入力する前に選択すべきキーのシーケンスを指定してください。 デフォルトでは、Vision AIは入力ボックスの既存の内容を、テストステップ値で指定した新しい値に置き換えます。 必ず二重引用符で値を入力し、Tosca Cloud が動的式として認識されないようにしてください。 |
"{Home-Ctrl-Home-Shift-End}" |
|
DeleteTextKeys |
テストステップ値が空の場合に、Vision AIが選択すべきキーシーケンスを指定してください。 デフォルトでは、テストステップ値が空の場合、Vision AIは入力ボックスの既存の内容を削除します。 二重引用符で値を入力し、Tosca Cloud が動的式として認識しないようにしてください。 |
"{Delete}" |
|
入力値を確認するためにVision AIが入力すべきキーシーケンスを指定します。二重引用符で確認キーのシーケンスを入力し、Tosca Cloud が動的式として認識しないようにしてください。 デフォルトは空の文字列であり、これはVision AIが特別なキーを押さないことを意味します。 |
"" |
ドロップダウンコントロールのステアリングパラメータを追加する
以下の表は、ControlTypeプロパティがDropdownに設定されたコントロールで使用可能なステアリングパラメータの一覧です。これらのパラメータを指定しない場合、タイピング機構はデフォルト値に従って動作します。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
キー遅延 |
Vision AIがキーアップまたはキーダウンの各操作後に待機する時間を指定します。 ミリ秒単位で入力してください。 |
10 |
|
HoldDelay |
Vision AIがキーを選択して保持する時間を指定します。 ミリ秒単位で入力してください。 |
0 |
|
ConfirmItemKeys |
Vision AIが項目を確定してドロップダウンを閉じるために選択するキーシーケンスを指定します。 By default, Vision AI selects Tab to confirm an item and close the drop-down. Tosca Cloudが動的式として認識されないように、値を二重引用符で囲んで入力してください。 |
"{Tab}" |
<foreground>Captionパラメータ用の特別な値</foreground>
最前面にあるウィンドウを操作するために、モジュールのCaptionパラメータを編集することができます。これにより例えば最前面のキャプションのないポップアップウィンドウやウィンドウを操作することができます。
そのためには、以下の手順に従ってください。
-
Scan a topmost window that you want to steer with Tosca XScan.
-
新しいモジュールのPropertiesペインを開いてください。
-
Captionパラメータの値を<Foreground>に置き換えてください。
このモジュールをテストケースで使用する場合、Vision AIは前面にあるウィンドウを操作します。
ウィンドウの識別には、オプションでClassNameとProcessNameの遷移パラメータを使用できます。これらのパラメータは、ウィンドウのキャプションが空の場合に選択されます。Captionパラメータに<Foreground>の値を使用する場合、Vision AIはこれらの値を組み合わせ、指定されたClassNameおよび/またはProcessNameに一致する最前面のウィンドウを選択します。
ツリーステアリングのパラメータ
ツリーを操作したい場合は、Tosca Cloudがどのように操作するかを指定するために操作パラメータを変更することができます。
デフォルトのステアリング方法は標準的な1行構文で、各ツリーノードの名前は -> で区切られています。例:Level1->Level2->Level3
複数行の構文もサポートされていますが、各レベルのモジュール属性をマニュアルで作成する必要があります。モジュール属性で、以下のパラメータに対して次の値を設定してください。
-
BusinessType: VisionAIControl
-
SpecialIcon:TreeNode
-
BusinessAssociation:Descendants
-
Engine:Vision AI
-
ExplicitName:TRUE
-
ControlType:Node
下の表は、ツリーのステアリングパラメータです。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
DepthMethod |
ツリーで異なるレベルを識別する方法を指定します。 Textはテキストの左境界を使用します。 Pixelsは、最も左側の非背景のピクセル(例えば、アイコンやテキストの左端のどちらか近い方)を使用します。 ツリーによっては、展開アイコンの有無に応じて、テキストのインデントが異なります。 |
Text |
|
最小インデント |
ツリーノードが子としてカウントされるために、親ノードからインデントされるべきピクセル数を指定します。 |
4 |
|
ExpandMethod |
ツリーノードの展開方法を指定します。可能な値:
キーストロークを中括弧内に追加できます。例: {Right}引用符を使用する必要があるので注意してください。例:"Click{Right}" |
DoubleClick |
|
SelectMethod |
最終的なツリーノードの選択方法を指定します。ExpandMethodに似ています。 |
クリック |
制限事項
-
単一行ステアリングでは、ツリーは拡張可能なノードを持つリストとみなされます。各レベルが厳密に前のレベルより下かどうかチェックされません。これは、現在のスクロールとOCR境界検出の限界によるものです。
-
マルチラインステアリングでは、すべてのノードが一度に画面に表示される必要があります。ステアリング中に親ノードが視界の外にスクロールされると、ステアリングは失敗します。
メニューステアリングのパラメータ
例えばFile->New->Mail Messageのように、単一行構文を使用してメニューを操作できます。
以下の表に、メニューのステアリングパラメータを示します。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
ファーストクリック |
最初の項目をクリックするか、マウスカーソルを置くかを指定します。 |
TRUE |
|
中間クリック |
後続の項目をクリックするか、マウスカーソルを置くかを指定します。唯一の例外は最後の項目です。この項目は常にクリックされるからです。 |
TRUE |
|
セパレータしきい値 |
制御の高さをパーセントで指定します。 この閾値を超える長さは、例えばメニューバーの高さの半分を超える長さの縦線が検出された場合、これはメニュー項目の切れ目とみなされます。メニュー項目がセパレータをまたぐことはありません。このステアリングパラメータは、近い単語を1つのメニュー項目に統合する場合に便利ですが、単語と単語の間に縦線が残ってしまいます。 |
50 |
タブバーの操作に関するパラメータです。
タブバーを操作するには、クリックしたいタブの名前を使用してください。一つの制限は、現在選択されているタブが特定されず、確認できないことです。
以下の表は、タブバーの制御パラメータを示しています。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
セパレータしきい値 |
コントロールの高さをパーセンテージで指定します。 もしタブバーの高さの半分以上の長さを超える垂直線が検出された場合、これはタブの中断と見なされます。タブがセパレーターをまたぐことはありません。このステアリングパラメータは、近い単語が1つのアイテムにマージされるが、それらの間に縦線が残っている場合に便利です。 |
50 |
ツールバーステアリングのパラメータ
ツールバーを操作するには、クリックしたい項目のテキストを指定してください。
以下の表は、ツールバーのステアリングパラメータの一覧です。
|
ステアリングパラメータ |
説明 |
デフォルト値 |
|---|---|---|
|
セパレータしきい値 |
コントロールの高さをパーセンテージで指定します。 この閾値を超える長さの縦線、例えばツールバーの高さの半分を超える長さの縦線が検出された場合、これはツールバー項目の区切りとみなされます。アイテムがセパレーターをまたぐことはありません。このステアリングパラメータは、近い単語が1つのアイテムにマージされるが、それらの間に縦線が残っている場合に便利です。 |
50 |