2017-08-07 4 views
3
私は、Visual Studio Enterpriseでコード化されたUIテストを実行している

テスト中の私のWebページには、電子メールアドレスを尋ねるjavascriptのポップアップを持っています入力する。私はconfirmPopup(ハイライトが正しく描かれている)を見つけることができ、キャンセルなどのボタンをクリックすることができます。C#のコード化されたUIテストは - javascriptのにテキストを入力するにwindow.promptテキストボックス

confirmationPopup = new WinWindow(); 
confirmationPopup.SearchProperties.Add(WinWindow.PropertyNames.ControlType, "Dialog"); 
confirmationPopup.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "#32770"); 
confirmationPopup.TechnologyName = "MSAA"; 
confirmationPopup.Find(); 
confirmationPopup.DrawHighlight(); 

var cancelButton = new WinButton(confirmationPopup); 
cancelButton.SearchProperties.Add(WinButton.PropertyNames.Name, "Cancel"); 
Mouse.Click(cancelButton); 

は、私は何をするのに苦労していますと、ポップアップの入力ボックスにテキストを入力します:

var textInput = new WinEdit(confirmationPopup); 
textInput.SearchProperties.Add(WinEdit.PropertyNames.ClassName, "Edit"); 
textInput.TechnologyName = "MSAA"; 
textInput.DrawHighlight(); 
textInput.Text = "[email protected]"; 

ハイライトは正しい制御を中心に描かれているが、しかしtextInput.Text =行はエラーになります 追加情報: "テキスト"のSetPropertyはコントロールタイプではサポートされていません。ウィンドウ

私が間違っていることは何ですか?

+0

あなたが投稿、コードが実行されているものであることを確認していますか?エラーは、制御タイプが間違っていることを示します。クラス名の検索プロパティを追加する必要はありません。WinEdit定義の一部になります。 TechnologyNameを指定する必要はありません。 DrawHighlightの呼び出しでは、テキスト領域または確認のポップアップ全体が強調表示されていますか? – MPavlak

+0

私はこれを初めて使っているので、これは実行中のコードですが、完全に受け入れても良いコードでも、必要なコードでもないかもしれません。 drawhighlightはテキスト領域のまわりにあります。私がconfirmPopup.DrawHighlight()を実行すると、確認ポップアップ全体が囲まれます。 – gregm

答えて

1

ここでは、javascriptのプロンプトウィンドウと対話する例を示します。

// go to a public site which has a prompt 
var window = BrowserWindow.Launch("http://www.javascriptkit.com/javatutors/alert2.shtml"); 

var contentDiv = new HtmlDiv(window); 
contentDiv.SearchProperties.Add(HtmlDiv.PropertyNames.Id, "contentcolumn", PropertyExpressionOperator.EqualTo); 

var promptButton = new HtmlInputButton(contentDiv); 
promptButton.SearchProperties.Add(HtmlInputButton.PropertyNames.ControlDefinition, "name=\"B4\"", PropertyExpressionOperator.Contains); 

promptButton.SetFocus(); 
Keyboard.SendKeys("{ENTER}"); 

// now the prompt is showing, find it and set text 
var promptWindow = new WinWindow(); 
promptWindow.SearchProperties.Add(WinWindow.PropertyNames.ControlType, "Dialog"); 
promptWindow.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "#32770"); 

promptWindow.DrawHighlight(); 

var middleWindow = new WinWindow(promptWindow); 
middleWindow.DrawHighlight(); 

var inputBox = new WinEdit(middleWindow); 
inputBox.DrawHighlight(); 
inputBox.Text = "Hello world!"; 

コード化されたUIの検査機能を使用すると、中間のウィンドウがあることがわかります。それを使用するかどうか、私は編集を見つけることができます。

2 Windows

+0

「ミドルウィンドウ」が存在することを示します。私はそのアプローチを試み、報告して戻します。 - ありがとうございました – gregm

+0

解決済み、ありがとうございます。問題は、「隠された」(別名は十分に見えなかった)ウィンドウがウィンドウ内にあり、テキスト入力がその中にあったということでした – gregm

関連する問題