問題タブ [microsoft-ui-automation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
325 参照

c++ - rootElement->FindFirst(...) は、Inspect で表示される要素を見つけることができません

Windows の [サービス] ウィンドウ ([スタート] -> [ファイル名を指定して実行] -> [Services.msc]) に含まれるリスト項目を見つけようとしています。リスト アイテムの名前は「Arc Service」で、Inspect を使用して簡単に見つけることができますが、私のコードでは見つけることができません。これは比較的単純なケースであるため、何か間違ったことをしているに違いないと感じています。

問題のコードは次のとおりです。

「アークサービス要素発見!」ブランチは決して入力されません。

要素を説明する Inspect からの詳細は次のとおりです。

MS 検査の詳細

どんな援助でも大歓迎です。ありがとう!

0 投票する
1 に答える
833 参照

wpf - UIAutomationでWPF描画ビジュアルを認識する方法は?

アプリケーションにはキャンバスがあり、そこに描画ビジュアル (線、ポリゴンなど) を追加します。

私たちの目標は、自動化によってこれらのビジュアルをキャンバスに追加し、それらが適切に追加されていることを検証することです。Microsoft の UIAutomation に基づくフレームワークを使用します。

「検査」などのツールを使用して視覚構造を検査すると、キャンバスが見つかりませんでした。いくつかの調査を行い、自動化でそれを確認できるようにするには、OnCreateAutomationPeerからメソッドをオーバーライドし、UIElement適切なオブジェクトを返す必要があることがわかりました。AutomationPeer

変更を行い、キャンバスが表示されるようになりましたが、キャンバスの下に追加されたビジュアルはまだ表示されません。

問題が何であるかを理解するのを手伝ってくれる人はいますか?

試したこと/代替案:

  1. OnCreateAutomationPeer 手法を採用しようとしましたが、 DrawingVisualから派生したものではなく、 に sをUIElement追加できません。UIElementCanvas.VisualCollection
  2. 画像認識はオプションですが、パフォーマンス/メンテナンスを考慮して回避しようとしています。
0 投票する
1 に答える
373 参照

c# - AutomationElement ScrollBar が ScrollVertical でアクセス違反をスローする

次のコードを使用して、サード パーティの .net アプリケーションでスクロールバーをスクロールしようとしています。Visual Studio でコードを実行すると、アクセス違反がスローされます。Visual Studio の外でアセンブリを実行すると、サポートされていないパターンと表示されます。どんなアイデアでも大歓迎です =]

0 投票する
0 に答える
303 参照

c# - WPF ListView オブジェクトが UIAutomation によって ListView ではなく DataGrid として認識されることがある

アプリケーションで使用されるListViewオブジェクトがあります。これは新しいクラスであり、パターンSortableListView : ListViewを使用しています。GridView自動化中に行の非仮想化を可能にするカスタム プロバイダーを追加しました (そのため、リスト内のアイテムを選択する「画面でチェック、いいえ、スクロール、繰り返し」の方法を実行する必要はありません)。それはうまく機能し、画面外のオブジェクトに気付くと、効率的に画面上に表示されます。グリッドは読み取り専用であるため、ListView を使用しているため、DataGrid の編集テンプレートは必要ありません。

ただし、場合によっては (原因を正確に突き止めることはできません)、ControlType が ListView ではなく DataGrid として認識されることがあります。これにより、自動化が中断されます。これを回避する唯一の方法は、グリッドに対処する必要があるたびに、それ自体が DataGrid または ListView として表示されているかどうかを確認する必要があることです。さらに困惑させるのは、テーブルの実際の行には ClassListViewItemがあり、Microsoft が変更していない正確なオブジェクトフォームですが、代わりに DataGrid 行として認識されます。

DataGridUIAutomation がそれを ListView ではなくと判断する理由を知っている人はいますか? これは、ListView から直接継承されているだけです。

0 投票する
1 に答える
330 参照

c# - UIAutomation 要素を永続化する方法はありますか?

Windows 7 (64 ビット) で MS UIAutomation を使用しています。UIAutomation 要素を永続化できるかどうかを知りたいのですが、そうであれば、それを行うための出発点は何でしょうか。

私が思いついたのは要素の RuntimeID だけですが、問題は、一部の要素に ID がない可能性があることです。

私が達成したい簡単なシナリオは、 を使用して画面上のコントロールの UIAutomation 要素を見つけることAutomationElement.FromPoint()です。今度はそれを永続化したいので、次回は に「ロード」して簡単にアクセスできますUIAutomation Element

0 投票する
2 に答える
2679 参照

ui-automation - CodedUI テスト - プレーン テキストのパスワードを入力フィールドに送信できない

ある時点で、フォームの入力フィールドにパスワードを送信すると、暗号化されているように見えます。パスワードの長さは 8 ですが、CodedUI はさらに多くの文字を入力しており、テストの実行中に表示されます。エンコーディングなしで文字列だけを渡す方法はありますか?

Ps

コードサンプル:

0 投票する
1 に答える
3307 参照

c# - MSAA は、UI オートメーションが検出しないコントロールを検出します

Windows アプリケーションの自動化に取り組んでいます。テストスタックの白いフレームワークを使用しています。問題が発生しました。このプログラムには、内部が見えない「ウィンドウ」オブジェクトがあります。白はその中にコントロールを示していません。Inspect.exe は、UI オートメーション モードで実行している場合でも、内部にコントロールを表示しません。Inspect を MSAA に切り替えると、内部のコントロールが正常に表示されます。これらのコントロールを処理するために C# から MSAA を使用する方法はありますか?

0 投票する
0 に答える
1099 参照

winforms - プロパティ Text が指定されている場合、UI オートメーションはタブ コントロール内の tabPage を検出しません。

この問題をできる限り単純化しました。以下のコードを「test.linq」ファイルにカット アンド ペーストして、LinqPad にロードできます。現状では、このコードを LinqPad で実行すると、動作することが示されます。意図はtabPage1、UI オートメーション フレームワークを使用して、AutomationId を持つペインを見つけることです。

作業中の行をコメントアウトして、破線を入れます。現在、タブ ページが見つかりません... 唯一の違いは、タブ ページがTextプロパティで宣言されていることです。

障害が自動化プロバイダーにあることを示している可能性のある一連のブログを見つけましたが、ソースを逆コンパイルしたところ、これが事実であることがわかりませんが、ベースはハンドラーを実装しており、実際にはそうではありませんそれがどこにつながるかを確認してください。TabControlTabControlControlWM_GETOBJECT

何か案は?