問題タブ [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.

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

wpf - WPF、Project White、Infragistics

Project Whiteを使用して、WPF アプリケーションの自動テストを作成しようとしています。Infragistics コントロールと対話するまでは、すべてうまくいっています。誰かがこのセットアップの経験をしたことがありますか? XamRibbon または XamOutlookBar とやり取りする方法の例を投稿できますか?

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

c# - 白 - ファイルを開くダイアログ ボックス

これは私の問題です。ファイルを開くダイアログ ボックスを開くアプリケーションがあり、ファイル パスとファイル名を [ファイル名:] コンボ ボックス セクションに入力しようとしています。

アプリケーションは、ログインするフォームをロードします。これにより、多数のボタンがある別のフォームが開きます。これらのボタンのいずれかを選択すると、別のフォームが開きます。ファイルを選択するボタンがあるのはこの形です。この段階では、3 つのフォームが開かれています。これにより、標準のファイルを開くダイアログ ボックスが開きます。このファイルを開くダイアログ ボックスを処理できないようです。

これが私が使用しているコードです。

何らかの理由で、LoginForm 変数を使用して他のフォームからすべてのボタンにアクセスできます。私は次のことを試しました。

これはうまくいきません。

次のことも試しましたが、これは null を返します。LoginForm変数を使用してこれにアクセスできると思いました。

何か案は?ありがとう

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

c# - .NET アプリケーションの自動化

可能な最も簡単な方法を使用して、別の .NET アプリケーション (c# で記述) を使用して、非表示の .NET アプリケーションを自動化しようとしています。これはテスト目的ではなく、このアプリケーションのスクリプトの不足を補う方法です。

ホワイトフレームワークは既に試しましたが、大きな問題が 1 つあります。それは、その動作です。遅く、非表示のウィンドウやコントロールでは機能しません (winAPI のように)。さらに、白を「クリック」すると、マウスが移動し、対象のウィンドウが前面に移動します。

また、user32.dll ラッパーを使用することも考えていました。これは、ターゲットを処理する方法が必要なためですが、.NET アプリケーションでは機能しないことがわかりました。また、対象となるアプリケーションには「...」というラベルの付いた 5 つのボタンがあり、必要なボタンを 2 つ見つけるのは非常に難しいため、それを使用することも問題になります。また、コントロールの .NET id (開発者が GUI の設計時にコントロールに付けた名前) も使用したいと考えています。

ところで、私のターゲット アプリケーションはMeGUIです。私たちは多くのビデオ エンコーディングを行っており、このようなツールは大いに役立ちます。MeGUIを非表示にする必要があります。なぜなら、私は唯一のプログラマーであり、私のツールを使用している他のユーザーは、バックグラウンドで何が起こっているかを見てはならず、多くのウィンドウがあちこちに飛び出していることについて話すべきではありません。

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

mocking - 受け入れテストに White を使用しているときにモックを注入する方法はありますか?

クライアント/サーバー アプリケーションでは、サーバー側は Web サービスのコレクションによって公開されます。クライアントは、アプリケーション コンテキストと呼ばれるものとやり取りして、サーバーを呼び出します。受け入れテスト中にアプリケーション コンテキストをモックして、クライアントからサーバー、データベースへとテストをフローさせ、データベースを実行したい各テストの正しいデータ。

これは可能ですか?それとも、別のアプローチをとるべきですか?

0 投票する
3 に答える
522 参照

visual-studio-2010 - Nunitがアプリケーションを起動できません

Visual Studio 2010 Express C#、NUnit 2.5.8、白0.2.0

NUnit+Whiteフレームワークを使用していくつかのテストを作成しようとしています。Whiteデモ(ListBoxExample)を問題なく起動して実行できます。

しかし、自分のアプリケーション(.Net 4.0)の簡単なテストを作成すると、2つの問題が発生します。

  1. Application.Launch( ""):このステートメントは文句を言いませんが、アプリケーションをまったく起動しません。間違ったパスを入力するとエラーが発生するため、パスは正しいです。正しいパスではエラーは発生しませんが、アプリケーションは起動していません。

  2. application.GetWindow(...)このステートメントはエラーを引き起こします:

DocBackupTestSuite.Tests.StartupTest:System.IO.FileLoadException:ファイルまたはアセンブリ'Bricks、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)

しかし、Bricks.dllファイルは私のプロジェクトで参照されています...

ご協力ありがとうございました

デイビー

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

c# - C# - Thoughtworks White を使用して別のアプリケーションのウィンドウを制御する

C# プログラムを作成していて、別のアプリケーションを制御する必要があります。この例を見つけまし たが、実際には機能しません (または、少なくとも機能させることはできません)。
1) アプリケーションは既に実行されているため (使用できませんApplication application = Application.Launch("foo.exe");
) 2) テキストボックスがあり、そこに書かれている内容を読む必要があります。
3)次に、そのボタンの1つを押したい(これはそれで行うことができます:Button button = window.Get<Button>("save"); button.Click();

Google も検索しましたが、機能するものは見つかりませんでした。
手伝って頂けますか?前もって感謝します。

0 投票する
4 に答える
2173 参照

c# - UIAutomation または White を使用してボタンを有効にする方法

インストール ウィザードを自動化しようとしていますが、有効になっていないボタンをクリックする必要がありました。

これは Windows Messages を使用して実行できることはわかっていますが、これが White または UIAutomation で既にサポートされているかどうか疑問に思っていました。

参考までに、これは機能しません:

これもしない

上記の例では、O2 プラットフォームに追加した White ベースの API を使用しています (メモ帳の自動化の例はこちら) 。

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

ui-automation - UIAutomation 実行時の UAC プロンプトの処理

UIAutomation 経由で UAC プロンプトにアクセスする方法はありますか (インストール プロセスのテストを書いています)。

http://msdn.microsoft.com/en-us/library/ms742884.aspxから、これを設定する方法があるようです。

問題は、これを自動的に作成する方法です。

私の現在の UIAutomation セットアップは、 O2 プラットフォームからの一連の拡張メソッドを備えた素晴らしい White API (white.codeplex.com) で構成されています。

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

ui-automation - ホワイト/UIAutomationの使用右クリックのコンテキストメニューを取得する方法

UIAutomationを使用していると、右クリックコマンドを実行したときに表示されるコンテキストメニューへの参照を取得できないようです。

次の例は、(Windowsエクスプローラーが内部にある)新しいウィンドウを開き、使用可能なDesktopWindowsから正しい参照を取得し(移動できることに注意してください)、右クリックでコンテキストメニューをトリガーした場合を示しています。

window.Popup変数を使用してポップアップを取得しようとしましたが、それはnullでした(ウィンドウオブジェクトのタイプがWhite.Core.UIItems.WindowItems.WinFormWindowであるというわけではありません)。

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

wpf - Caliburn.MicroによるWPF UIオートメーション?

Caliburn.MicroWhiteを使用している 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ます。