Silverlight コントロールを識別するためのロケーター属性

Silverlight コントロールでサポートされているロケーター属性は次のとおりです。
  • automationId
  • caption
  • className
  • name
  • すべての動的ロケーター属性
注: 属性名は、大文字小文字が区別されます (モバイル アプリケーションを除く。モバイル アプリケーションでは、大文字小文字は無視されます)。デフォルトで、属性値では大文字と小文字が区別されますが、他のオプションと同様にこのデフォルト設定は変更できます。ロケーター属性は、ワイルドカード ? および * をサポートしています。

動的ロケーター属性の詳細については、「動的ロケーター属性」を参照してください。

Silverlight スクリプト内のコンポーネントを識別するために、automationIdcaptionclassNamename、または任意の動的ロケーター属性を指定できます。 automationId はアプリケーション開発者が設定します。 たとえば、automationId を持つロケーターは、以下のようになります://SLButton[@automationId="okButton"]

automationId は一般に非常に有用で安定した属性であるため、使用することを推奨します。

属性の種類 説明
automationId テスト対象アプリケーションの開発者によって設定される識別子。 Visual Studio デザイナは、デザイナ上で作成されたすべてのコントロールに自動的に automationId を割り当てます。 アプリケーション開発者は、アプリケーションのコード上でコントロールを識別するために、この ID を使用します。 //SLButton[@automationId="okButton"]
caption コントロールが表示するテキスト。 複数の言語にローカライズされたアプリケーションをテストする場合、caption の代わりに automationIdname 属性を使用することを推奨します。 //SLButton[@caption="Ok"]
className Silverlight コントロールの .NET 単純クラス名 (名前空間なし)。 className 属性を使用すると、Silk4J が解決する標準 Silverlight コントロールから派生したカスタム コントロールを識別するのに役立ちます。 //SLButton[@className='MyCustomButton']
name コントロールの名前。 テスト対象アプリケーションの開発者によって設定されます。 //SLButton[@name="okButton"]
重要: XAML コードの name 属性は、ロケーター属性 name ではなく、ロケーター属性 automationId にマップされます。

Silk4J は、automationIdnamecaptionclassName 属性をこの表に示した順番に使用して Silverlight コントロールのロケーターを記録時に作成します。 たとえば、コントロールが automationIdname を持つ場合、automationId が固有の場合は Silk4J がロケーターを作成する際に使用されます。

以下の表は、アプリケーション開発者がテキスト「Ok」を持つ Silverlight ボタンをアプリケーションの XAML コードに定義する方法を示しています。
オブジェクトの XAML コード Silk Test からオブジェクトを検索するためのロケーター
<Button>Ok</Button> //SLButton[@caption="Ok"]
<Button Name="okButton">Ok</Button> //SLButton[@automationId="okButton"]
<Button AutomationProperties.AutomationId="okButton">Ok</Button> //SLButton[@automationId="okButton"]
<Button AutomationProperties.Name="okButton">Ok</Button> //SLButton[@name="okButton"]