問題タブ [white-framework]
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.
c# - プロセスを検索し、ProcessStartInfo をメソッドにアタッチします
Windowsの電卓を操作しようとしています。私のプログラムがインスタンスを見つけた場合 (それが検出した場合)、プロセスの startInfo を TestStack の UIAutomation 用のホワイト フレームワークに提供する必要があります。ただし、次の例外が引き続き発生します。
次のfound[0].StartInfo
コード行から
電卓プロセスはすでに実行中です。(アクセサリ > 電卓)
c# - DockPanel ルートで White CustomUIItem を作成するには?
ウィンドウに複雑な構造のカスタム コントロールを設定しています。このコントロールのすべてのロジックを (内側のグリッド、ボタンなどで) カプセル化するカスタム コントロールを作成したいと思います。
私が追加したXAMLで:
私が追加したソースコードでは:
今追加して、アイテムを見つけようとしています:
Custom type および 'WidgetName' 名のコントロールが見つからないというエラーがスローされます。
また、ウィンドウにはそのようなコントロールのセットがあります。のようなものはありますか
c# - GetMultiple から取得した UIItem を White の具体的な CustomUIItem に変換する方法は?
CustomUIItem 実装があります。ウィンドウで、このタイプの N 個のコントロールを動的に作成しました。
これらすべてのコントロールのリストを取得する必要があります。
これにより、そのようなパラメーターを持つすべてのコントロールのリストが返されます。
ここで、これらのカスタム コントロールを具体的な実装 MyControlType に変換したいと思います。どうやってやるの?
PS私は自分のタイプにキャストしようとしました、例えば
また、手動でコントロールを作成しようとしました:
この場合、Container プロパティは null で、内部コントロールが見つかりません。
c# - オフスクリーン エレメント テストスタック ホワイト
サードパーティの WPF アプリケーションを自動化する必要があります。TestStack/White を使用しています。このアプリケーションには、画像で表示されるメニュー バーがあります。いくつかのアクションメニューが変更された後。新しいイメージを提示します。新しい画像をクリックしたいとき:
例外が発生します:
TestStack.White.AutomationException: イメージに対してアクションを実行できません。AutomationId:、Name:、ControlType:image、FrameworkId:WPF、要素がオフスクリーンです。
調査要素には Microsoft Inspect を使用しています。テストを開始すると、Inspect は画像がオフスクリーンであることを示します。しかし、これらのアクションを手動で行うと、完全に機能し、Inspect でこの画像がオフスクリーンになりません。
これらの要素を更新したり、ウィンドウのキャッシュをクリアするにはどうすればよいですか?
console-application - コンソール アプリケーションの右クリック後のコンテキスト メニューの白/UI オートメーション
コンテキスト メニューからアイテムにアクセスする方法を調べてきましたが、今のところ検索に成功していません。ContextMenu が Desktop の子として表示されることがわかりました。これは MSDN も確認しています。コンソールアプリケーションの自動化を行っています。ただし、デスクトップの子を表示するためにデバッグしたり、ルートからコンテキスト メニューにアクセスしようとすると、そこにないと表示されます。さらに、UISpy/Inspect は、ProcessID がアプリケーションに関連していることを教えてくれます。では、親との密談はどこにあるのでしょうか?
以下は私が使用しているコードサンプルです
TreeNode を右クリックした後、ポップアップ メニューが表示され、その上で利用可能なオプション (メニュー項目) の 1 つをクリックしたいと思いました。ただし、Inspect ツールのポップアップ メニューでは、Context とその Desktop の子として表示されます。コンテキスト メニューに集中できず、これで利用可能なオプション (メニュー項目) をクリックできませんか? コンテキストメニューで利用可能なメニューアイテムをクリックする方法について、誰かが私に案内してもらえますか?
前もって感謝します!
c# - Backgroundworker 内のテスト実行は、多くの子要素を持つ要素で突然終了します
私の一般的なセットアップ: 私たちは小さな GUI を備えた小さな Excel インポーターを作成しました。基礎となるフレームワークは TestStack.White です。Excel ファイルと他のいくつかのユーザー対話をインポートした後、テストは System.ComponentModel.BackgroundWorker 内で開始されます。これは、膨大な数の子要素を含む要素を見たり、対話したりしない限り、正常に動作します。
しかし、多くの要素を持つ TestStack.White.UIItems.WindowItems.Window または TestStack.White.UIItems.UIItemContainer と対話するとすぐに、testexecution は終了します。
対話とは、null でないチェックやローカル変数への代入などの単純なものから、子の数を要求するようなものまですべてを意味します。テスト実行を終了するいくつかの例: 1)
2)
3)
何百もの要素を持たないウィンドウでは、3 つの例はすべて意図したとおりに機能します。
多くの要素とは、たとえば、ScrollView を内部に持ち、数十または数百のエントリを持つテーブルを持ち、すべてのエントリがテキストまたはチェックボックスなどを含む 3 ~ 4 列で構成されるウィンドウを意味します。
Backgroundworkers RunWorkerCompleted と Disposed は呼び出されません。意図的に配置された try/catch ブロックを使用しても、例外はまったく発生しません。デバッガーは問題の原因となっている行に到達し、それだけです。1時間待っても、その後何も来ません。
代わりに、「スレッド {some hex id} はコード 259 (0x103) で終了しました」といういくつかの異なるメッセージが表示されます。Visual Studio の出力ウィンドウで。これは私の最後のテスト実行からのものです:
私がこのメッセージを理解している限り、それはスレッドがまだ生きていることを意味します。https://stackoverflow.com/a/22395548/1171328
エラーの原因となった要素の内容を確認するためにデバッガーにアクセスすると、Items (子要素を持つ List) の後に続くすべての要素 (Items を含む) でタイムアウトが発生します。
また、問題は、このスレッドの場合のように、メイン スレッドが終了することではありません (または終了すべきではありませんか? )。
ここで何が起こっているのか、またはこの問題を解決する方法を知っている人はいますか?
これは私がアプリを起動する方法です:
その後、ユーザーはテストするウィンドウを設定します (モーダル ウィンドウである場合とそうでない場合がありますが、何百もの要素を持たないウィンドウでは機能します)。
context.UIAnchor は上記の要素です。その後、ユーザーが設定したメソッド (Button.Click など) が呼び出されます。おかしなことに、context.UIAnchor = win と items.count の出力が機能します。
更新: テスト対象のアプリを閉じると、テスト プログラムを閉じる前に、ElementNotAvaiableException が発生します。したがって、スレッドが完全に死んでいるわけではありません。
white-framework - Test Stack White のロギングをオフにする方法は?
White はコンソールに大量のログを出力しているので、コンソールをオフにして出力を確認したいと考えています。それはどのように可能ですか?以下を試しましたが、まだログが表示されます。追加する必要があるコードは他にありますか?
vb6 - TestStack.White を使用して VB6 コントロールを見つける
TestStack.White を使用して、VB6 で記述された古いアプリからリストを読み取ります。リストへの参照を見つけることはできますが、TestStack.White はリスト内の値を認識しません。
Spy++ または Visual UI Automation を使用すると、ID が 15、14、16、12、11、10、8 などのペインを確認すると、実際のテキスト ボックスではなく、列が強調表示されます。このアプリのスクリーンショットを見ることができます。
リストから値を取得する方法について何か提案はありますか?
前もって感謝します。
アプリのスクリーンショットです。
Spy++ のスクリーンショット
ビジュアル UI オートメーションの検証のスクリーンショット