問題タブ [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# - 競合状態により統合テストの一貫性が失われる
Project Whiteを使用して、アプリケーションの簡単な UI 自動化テストを作成しました。アプリを起動し、メイン ウィンドウが存在するかどうかを確認するだけです。これは、NUnit テストのコンテキストで行われます。
問題は、テスト結果がランダムであることです。パターンに従わずに、失敗することもあれば成功することもあります。
初期化が失敗するようにテスト環境が設定されている: テストが一貫して失敗することを確認したい。問題は、アプリのメイン フォームがそのLoad
イベントのハンドラーで初期化と関連するすべての検証を実行することです。ホワイトが別のプロセスでテスト対象のアプリケーションを実行するという事実により、競合状態があると思います。
GetWindow
初期化の失敗が検出される前に呼び出された場合、テストは成功します。失敗検出がレースに勝つと、アプリが閉じられるため、GetWindow
失敗します。
White のドキュメントを調べたり、サンプルを閲覧したりしていますが、このシナリオの回避策が見つかりません。アプリのコードを変更することは、まだテスト ハーネスを持っていないため、最後の手段にする必要があります (それが私を行き詰まらせた理由です。私のアイデアはすべて、アプリの変更を中心に展開しています)。
configuration - TestStack.White タイムアウトを設定するにはどうすればよいですか?
私はVisual Studio 2010を使用しており、TestStack.White
経由しNuGet
ました(バージョンを取得しました0.10.3.118
)。
問題は、テストでボタンをクリックすると、デフォルトの 5 秒のタイムアウトを超えるアクションがトリガーされることです。したがって、私のテストでは常に次の結果が得られます。
Waiting に関する White のドキュメントを読みましたが、構成セクションを見て、独自のタイムアウト値を設定する方法を確認するように指示されています。そして、そのセクションは存在しません。
更新: というファイルを作成して、テスト dll とTestStack.White.dll.config
同じディレクトリに配置しようとしました。TestStackWhite.dll
内容:
それにもかかわらず、NUnit または VS + Resharper 内からテストを実行しても、5 秒のタイムアウトが発生します...
c# - ErrorProvider のエラーメッセージを検出する
現在のシナリオは、元のアプリケーションの単なるダミーです。textboxes
私は 2 、 1 ErrorProvider
、および aのフォームを持っていbutton Validate
ます。テキストボックスが空の状態で Validate をクリックすると、テキストボックスの前にinput 1 missing
とinput 2 missing
それぞれのエラープロバイダが表示されます。以下はフォームです
現在、自動化チームは errorProvider ツールチップを検出しようとしています。彼らはQTPを使用しています。このテスト側の最小限の知識で、私は分析を開始しました。QTPで試したのは
SwfEdit("textbox1").GetErrorProviderText()
しかし役に立たない。私は常に空のテキストを取得しています。
次に、White
フレームワークを使用して物事を達成することにしました。errorProvider コントロールを取得できますが、各テキスト ボックスのエラー メッセージを取得する方法がわかりません。これは私が今まで書いたコードです
さらに進む方法がわかりません。正しい道を進んでいるかどうかもわかりません。これを達成するための新しいアイデア、提案、またはガイダンスを喜んで聞きます。ありがとう。
c# - UI 要素から値を取得する
UIAutomation
私は White を使用してライブラリに基づいたものを書いていC#
ますが、要素の実際の値をどのように取得できるのか疑問に思っていましたか? textbox
からのテキスト、からのテキスト、およびlabel
からbutton
の数値を意味しますnumeric up-down
か? 私の知る限り、どちらのような方法もありません'GetValue'
。これを達成する方法は?
c# - 白いオブジェクトから AutomationPattern を取得できません
AutomationPatterns
Windows 電卓でテキストの情報を取得する必要があるため、問題が発生していGetAutomationPatterns()
ますが、空の配列が返されます。
私はこの方法でそれにアクセスしようとしています:
私の目標を達成する方法は、そのテキストボックスの値を取得する必要があり、パターンがないと不可能なようです...
c# - 自分が起動していないウィンドウを制御する
フレームワークを学習できるように、 TestStack Whiteを使用して簡単なインストール スクリプトを作成しています (オンラインで多くの情報を見つけることができませんでした)。
私はこの小さな実験のためにリーグ・オブ・レジェンドのインストールを使用しています
フォームに入力し、次のボタンを押すと、インストール プログラムからウィンドウが開きます。
私がウィンドウを実行していなくても、ウィンドウを取得する方法があるかどうか知りたいです。
これは、新しいウィンドウが開く瞬間まで、アプリケーションを実行するために使用しているコードです:
(私の英語でごめんなさい)
unit-testing - 名前を使用してボタンを取得できますが、ボタンをクリックできません
Name が NavigateLink_1 のボタンのこのコードがあります。これを実行してデバッグすると、dashBoardBtn 変数で正しいボタン インスタンスを取得できますが、Click() 関数が機能していません。Get(SearchCriteria.ByText("NavigateLink_1")) を使用する場合のようにボタン名を使用するだけでこれをすべて実行しようとしても、同じ問題に直面します。同じグループのボタンの他のボタン部分で試したのと同じことですが、その場合は正常に機能しています。
アプリケーションの UI インスペクタとして White Framework と UI Spy を使用しています。
c# - ClassName で複数の UIItem を取得する
カスタム タイプがあり、その下に複数の TextBox コントロールがあります。問題は、すべての TextBox に Automation Id または Name がないことです。そのため、リスト内のすべてのテキストボックスを取得して、それらを操作できるようにしたいと考えました。そうするのは良い習慣ではないことはわかっていますが、他に選択肢はありません。問題は、リスト内の特定のカスタム タイプの下にあるこれらの TextBox をすべて取得する方法です。
誰かがより良い方法を知っている場合は、提案してください。