問題タブ [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.
wpf - WPF、Project White、Infragistics
Project Whiteを使用して、WPF アプリケーションの自動テストを作成しようとしています。Infragistics コントロールと対話するまでは、すべてうまくいっています。誰かがこのセットアップの経験をしたことがありますか? XamRibbon または XamOutlookBar とやり取りする方法の例を投稿できますか?
c# - 白 - ファイルを開くダイアログ ボックス
これは私の問題です。ファイルを開くダイアログ ボックスを開くアプリケーションがあり、ファイル パスとファイル名を [ファイル名:] コンボ ボックス セクションに入力しようとしています。
アプリケーションは、ログインするフォームをロードします。これにより、多数のボタンがある別のフォームが開きます。これらのボタンのいずれかを選択すると、別のフォームが開きます。ファイルを選択するボタンがあるのはこの形です。この段階では、3 つのフォームが開かれています。これにより、標準のファイルを開くダイアログ ボックスが開きます。このファイルを開くダイアログ ボックスを処理できないようです。
これが私が使用しているコードです。
何らかの理由で、LoginForm 変数を使用して他のフォームからすべてのボタンにアクセスできます。私は次のことを試しました。
これはうまくいきません。
次のことも試しましたが、これは null を返します。LoginForm変数を使用してこれにアクセスできると思いました。
何か案は?ありがとう
c# - .NET アプリケーションの自動化
可能な最も簡単な方法を使用して、別の .NET アプリケーション (c# で記述) を使用して、非表示の .NET アプリケーションを自動化しようとしています。これはテスト目的ではなく、このアプリケーションのスクリプトの不足を補う方法です。
ホワイトフレームワークは既に試しましたが、大きな問題が 1 つあります。それは、その動作です。遅く、非表示のウィンドウやコントロールでは機能しません (winAPI のように)。さらに、白を「クリック」すると、マウスが移動し、対象のウィンドウが前面に移動します。
また、user32.dll ラッパーを使用することも考えていました。これは、ターゲットを処理する方法が必要なためですが、.NET アプリケーションでは機能しないことがわかりました。また、対象となるアプリケーションには「...」というラベルの付いた 5 つのボタンがあり、必要なボタンを 2 つ見つけるのは非常に難しいため、それを使用することも問題になります。また、コントロールの .NET id (開発者が GUI の設計時にコントロールに付けた名前) も使用したいと考えています。
ところで、私のターゲット アプリケーションはMeGUIです。私たちは多くのビデオ エンコーディングを行っており、このようなツールは大いに役立ちます。MeGUIを非表示にする必要があります。なぜなら、私は唯一のプログラマーであり、私のツールを使用している他のユーザーは、バックグラウンドで何が起こっているかを見てはならず、多くのウィンドウがあちこちに飛び出していることについて話すべきではありません。
mocking - 受け入れテストに White を使用しているときにモックを注入する方法はありますか?
クライアント/サーバー アプリケーションでは、サーバー側は Web サービスのコレクションによって公開されます。クライアントは、アプリケーション コンテキストと呼ばれるものとやり取りして、サーバーを呼び出します。受け入れテスト中にアプリケーション コンテキストをモックして、クライアントからサーバー、データベースへとテストをフローさせ、データベースを実行したい各テストの正しいデータ。
これは可能ですか?それとも、別のアプローチをとるべきですか?
visual-studio-2010 - Nunitがアプリケーションを起動できません
Visual Studio 2010 Express C#、NUnit 2.5.8、白0.2.0
NUnit+Whiteフレームワークを使用していくつかのテストを作成しようとしています。Whiteデモ(ListBoxExample)を問題なく起動して実行できます。
しかし、自分のアプリケーション(.Net 4.0)の簡単なテストを作成すると、2つの問題が発生します。
Application.Launch( ""):このステートメントは文句を言いませんが、アプリケーションをまったく起動しません。間違ったパスを入力するとエラーが発生するため、パスは正しいです。正しいパスではエラーは発生しませんが、アプリケーションは起動していません。
application.GetWindow(...)このステートメントはエラーを引き起こします:
DocBackupTestSuite.Tests.StartupTest:System.IO.FileLoadException:ファイルまたはアセンブリ'Bricks、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)
しかし、Bricks.dllファイルは私のプロジェクトで参照されています...
ご協力ありがとうございました
デイビー
c# - C# - Thoughtworks White を使用して別のアプリケーションのウィンドウを制御する
C# プログラムを作成していて、別のアプリケーションを制御する必要があります。この例を見つけまし
たが、実際には機能しません (または、少なくとも機能させることはできません)。
1) アプリケーションは既に実行されているため (使用できませんApplication application = Application.Launch("foo.exe");
) 2) テキストボックスがあり、そこに書かれている内容を読む必要があります。
3)次に、そのボタンの1つを押したい(これはそれで行うことができます:Button button = window.Get<Button>("save"); button.Click();
Google も検索しましたが、機能するものは見つかりませんでした。
手伝って頂けますか?前もって感謝します。
c# - UIAutomation または White を使用してボタンを有効にする方法
インストール ウィザードを自動化しようとしていますが、有効になっていないボタンをクリックする必要がありました。
これは Windows Messages を使用して実行できることはわかっていますが、これが White または UIAutomation で既にサポートされているかどうか疑問に思っていました。
参考までに、これは機能しません:
これもしない
上記の例では、O2 プラットフォームに追加した White ベースの API を使用しています (メモ帳の自動化の例はこちら) 。
ui-automation - UIAutomation 実行時の UAC プロンプトの処理
UIAutomation 経由で UAC プロンプトにアクセスする方法はありますか (インストール プロセスのテストを書いています)。
http://msdn.microsoft.com/en-us/library/ms742884.aspxから、これを設定する方法があるようです。
問題は、これを自動的に作成する方法です。
私の現在の UIAutomation セットアップは、 O2 プラットフォームからの一連の拡張メソッドを備えた素晴らしい White API (white.codeplex.com) で構成されています。
ui-automation - ホワイト/UIAutomationの使用右クリックのコンテキストメニューを取得する方法
UIAutomationを使用していると、右クリックコマンドを実行したときに表示されるコンテキストメニューへの参照を取得できないようです。
次の例は、(Windowsエクスプローラーが内部にある)新しいウィンドウを開き、使用可能なDesktopWindowsから正しい参照を取得し(移動できることに注意してください)、右クリックでコンテキストメニューをトリガーした場合を示しています。
window.Popup変数を使用してポップアップを取得しようとしましたが、それはnullでした(ウィンドウオブジェクトのタイプがWhite.Core.UIItems.WindowItems.WinFormWindowであるというわけではありません)。
wpf - Caliburn.MicroによるWPF UIオートメーション?
Caliburn.MicroとWhiteを使用している WPF アプリケーションの UI 自動化テストを作成しようとしています。CM の組み込み規則を使用して、コントロールをビュー モデルのプロパティとメソッドにバインドしています。また、Conductor
クラスを使用して、1 つの画面に複数のビューを表示できるようにしています。これは通常、画面上の複数のコントロールが同じx:Name
値になる可能性があることを意味します。別のビューモデルにバインドされるだけです。私がやろうとしていることの良いアイデアは、 CM に付属の HelloScreens サンプル アプリケーションで見ることができます。
私が直面している問題はx:Name
、CM がすべてのバインディング作業を処理できるように、同じ属性を持つ複数の XAML 要素を持つことです。残念ながら、これは、複数のUIItem
オブジェクトが同じ UI オートメーション ID を持つことを意味します。たとえば、さまざまTextBlock
な要素を取得するために私が見つけた唯一の方法x:Name="DisplayName"
は、次のような呼び出しを行うことです。
これは、私のテストでは、さまざまなコントロールが画面に配置される正確な順序を知る必要があることを意味しますが、これは非常に脆いようです。別のビュー モデルを追加するだけで、テストがすべて壊れていることがわかります。
x:Name
属性を使用する以外にオートメーション ID を指定する方法はありますか?- White を使用する代わりに UI オートメーション フレームワークを直接使用した場合、これはより簡単になりますか?
- それとも、CM の規約ベースのバインドをやめて、すべてに固有の
x:Name
値を与えて手動でバインドする必要がありますか?
更新しました
一度に複数のビューを表示することの意味を明確にするために、ここに私の一般的なレイアウトを示します。私は私ShellViewModel
が由来するものを持っていConductor<IScreen>.Collection.OneActive
ます。次に、私のビューにはItemsControl
、シェル ビュー モデルのItems
プロパティにバインドされた があります。各項目テンプレートには、シェルのビューにある にIScreen
特定のものをロードするためのボタンが表示されます。ContentControl
したがって、 で要素を検索しようとするとx:Name="DisplayName"
、シェル ビューにラベルがあり、 ボタンにItemsControl
ラベルがあり、 の中にラベルがありContentControl
ます。