既知の問題 - .NET WPF

このトピックでは,.NET WPF アプリケーションのテストに関するトラブルシューティングと制限事項について説明します。

オブジェクトの認識

  • オブジェクト・スパイ(.NET アドインがロードされている場合は .NET Windows フォーム・スパイ)を使って WPF オブジェクトを調査するときに,[記録と実行環境設定]ダイアログ・ボックスが調査対象の WPF アプリケーションを記録するように設定されていない場合,UFT One はそのオブジェクトを標準 Windows オブジェクトとして認識します。

    回避策:該当の WPF アプリケーションを閉じます。UFT One で[記録と実行環境設定]ダイアログ・ボックスを開き([記録]>[記録と実行環境設定]),[Windows アプリケーション]タブで[開いているすべての Windows ベース アプリケーションでテストを記録して実行する]オプションを選択します。WPF アプリケーションを再び開き,調査を実行します。

  • UFT One は,テキスト・ブロック要素を,WPF オブジェクト(リスト,ツリービュー,テーブルなど)の子オブジェクトとして扱いません。このため,これらの要素は ChildObjects ステートメントで返されず,WPF オブジェクトとその子を学習するように選択しても,テスト・オブジェクトとして学習されません。

    WPF オブジェクトのテキスト・ブロック要素を操作するには,GetItem() または GetItemProperty() ステートメントを使用します。

  • アプリケーションの .NET Windows Forms オブジェクトの完全なタイプ名を確認するには,オブジェクト・スパイで SwfTypeName を確認します。

    また,次の構文を使ってステートメントを実行することにより,選択したオブジェクトの基本タイプのリストを表示することもできます。

    MsgBox <SwfTestObj>(<descr>).GetROProperty("SwfTypeNames")  

    SwfTestObj(<descr>) は,チェック対象のテスト・オブジェクトです。このステートメントを実行すると,メッセージ・ボックスが開き,リストの一番上に実際のクラスが表示され,その下に基本クラスが表示されます。

  • Windows マシンの地域設定が,言語パックがインストールされていない形式(言語)に設定されている場合,UFT One は WPF オブジェクトを記録,実行,またはスパイできません。

先頭に戻る

記録

  • ステップを低レベル記録で記録すると,Windows Presentation Foundation テスト・オブジェクトの標準の記述プロパティに定数値が設定されません。これにより,実行セッション中の記述プロパティ値が異なるようになり,これらのオブジェクトに対するステップが失敗する可能性があります。

  • アプリケーション内の動的に変化するオブジェクトを記録する場合,UFT One は,変化する前の元のオブジェクトではなく,変化した後のオブジェクトのオブジェクト・プロパティを記録します。そのため,このオブジェクトを使用する実行セッションは失敗します。

    回避策:オブジェクトの記述をエディタで手動で変更します。

  • DevExpress Data Grid コントロール(WpfDXGrid テスト・オブジェクト)での記録:

    UFT One 24.2 以降 UFT One 23.4 以前

     DevExpress Data Grid コントロールでは,次のメソッドが記録されません。

    MakeCellVisibleShowColumnHideColumnMoveColumn

    DevExpress Data Grid コントロールでは,記録はサポートされていません。

    次のメソッドを記録するには,グループ・パネルまたはカラム名を右クリックして表示されるコンテキスト・メニューを使用して,記録セッション中に実行する必要があります。

    GroupByColumnUnGroupByColumnExpandAllGroupsCollapseAllGroupsClearGrouping

    カラムをドラッグまたはドロップしてグループ操作を実行した場合,その操作は記録されません。

     

先頭に戻る

開いている .NET WPF アプリケーションの認識

.NET WPF テスト実行の合間に UFT One を再起動した場合,再起動後にテストをもう一度実行すると,UFT One は開いているアプリケーションを認識しない場合があります。

エラーを回避するには,UFT One マシンに次のレジストリ定義を追加します。

  1. [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings] レジストリ・キーに移動します。

  2. ProcNoCleanup という名前の新しいサブキーを追加します。

  3. [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings\ProcNoCleanup] キーに空の文字列値を追加します。この値の名前は,アプリケーションの名前にする必要があります。

    例:"MyApp.exe"=""

注: 後方互換性を考慮して,一部のレジストリ・キーには以前の会社のブランドが意図的に使用されています。

ヒント: 複数のプロセスでこの機能を有効にするには,両方のキーの下に同じ形式の行を追加します。

先頭に戻る

Windows の表示倍率(DPI)

Windows の表示倍率設定に関係なく,WPF アプリケーションをテストできます。ただし,次のメソッドを使用する場合は,倍率を 100% に設定することをお勧めします。

  • MouseMove メソッドを実行して,マウス・ポインタを WpfButton オブジェクトの端に移動する。

  • Click メソッドを実行して,WpfScrollBar オブジェクトの端をクリックする。

先頭に戻る