Welcome to the new Ranorex Support Portal

動的な UI 要素の識別

多くのアプリケーションには、いわゆる動的な UI 要素が含まれています。これらの要素は、例えば Web ページをリロードした時など、特定のイベントが発生するたびに変化します。多くの場合、自動テストツールで、これらの動的な UI 要素を確実に識別することは困難です。これは、静的な UI 要素に対しては堅牢な識別子(要素の ID など)が、動的な UI 要素の場合には、常に変化するためです。そのため、動的な UI 要素に対しては、他の識別子を使用する必要があります。

Web 要素の場合、Ranorex Studio は、UI 要素が動的であることを識別するためのアルゴリズムを使用します。これにより、動的な識別子は無視され、代わりに、より堅牢な静的な識別子が使用されます。したがって通常は、ユーザーが Web リポジトリ アイテムから動的な識別子を見つけ出して編集する必要はありません。

しかしながら、デスクトップ アプリケーションや、モバイル アプリケーションの場合には、動的な識別子を手動で処理する必要があります。リポジトリ アイテムの RanoreXPath を手動で編集することも、オブジェクト認識を最適化するために RanoreXPath ウェイト ルールを使用することもできます。通常はウェイト ルールを使用することをおすすめします。

この章では、Ranorex Studio が動的な UI 要素を確実に識別できるように、属性ウェイトの動作、およびウェイト ルールの変更方法について説明します。

このセクションでは、この章の他のセクションで説明する内容を理解するのに必要となる、キー コンセプトについて、その概要を説明します。

オブジェクト認識のプロセス

UI 要素をトラッキングして識別するとき、Ranorex Studio は、UI 要素の目的に応じてそれらを分類し、そのステータスを定義します。UI 要素が動的なものである場合、つまり、属性のひとつに動的な値を持つ場合、動的な要素と分類されます。

以下の図は、この分類のプロセスを示したものです。

テクノロジーに依存しないロールの割り当て
ロール固有の特性の割り当て
これらの特性から派生する属性
テクノロジー固有の機能の割り当て
これらの機能から派生する属性

参照

ロール、機能、属性については、Ranorex Studio アドバンスト > UI 要素 > ⇢ UI のロールと機能 を参照してください。

RanoreXPath による UI 要素の識別

Ranorex Studio は、UI 要素を識別するために RanoreXPath 式を使用します。これらの式は、階層化されたノードと述語のセットをベースにしています。これらは、オブジェクト認識プロセスで割り当てられるカテゴリーを反映したものです。したがって、RanoreXPath 式には、UI 要素を識別するための動的な属性値が含まれます。

以下の図は、Ranorex Studio Demo Application の Exit ボタンの RanoreXPath 式の構造を表したものです。この式では、ボタンを認識するために安定した属性値を使用しています。

基本的な構造: 独立した UI 要素の RanoreXPath は、3 つの要素、軸指定子(Axis)、ノード(node)、0個以上の述語(predicate)で構成されます。
Exit ボタンの場合、軸指定子は /、ノードは button ロール、述語はボタンをユニークに識別するための属性値のペアです。

参照

RanoreXPath の概要については、Ranorex Studio アドバンスト > RanoreXPath > ⇢ RanoreXPath の基礎 を参照してください。

どの属性が RanoreXPath で使用されるか

Ranorex Studio は、最初に UI 要素を分類し、これらの分類に基づいて RanoreXPath 式を生成します。UI 要素には通常、割り当てることができるロールは 1 つしかありませんが、要素のさまざまな分類と属性から派生する、多くの異なる属性があります。これらの属性のうち、Ranorex Studio が UI 要素を識別するために RanoreXPath 式で使用するものは、ランダムではなく、いわゆる属性の重み付けによって決定されます。

デモ アプリの Exit ボタンを確認してみましょう。

Ranorex Studio は、テクノロジーに依存しないロールとして Button を UI 要素に割り当てます。
Ranorex Studio は、UI 要素が WinForms 要素であると認識し、テクノロジー固有の機能として WinForms を割り当てます。
機能 WinForms には、4 つの Control 属性があります。Ranorex Studio は、UI 要素を識別するための RanoreXPath 式で、ControlName 属性を選択しています。

上で説明したように、Ranorex Studio が選択する属性はランダムではありません。ControlName 属性の重み付けが、他と比べてもっとも高かったために、これを使用しています。

属性の重み付けは、安定した属性を使用して UI 要素を識別するよう Ranorex Studio に指示することを可能にするため、重要です。これは、動的な UI 要素を確実に識別するための解決方法になります。以降のセクションで、詳しく説明します。