2017-03-17 9 views
0

に呼び出しから戻ってきた私は自分のアプリケーションを実行するテストを作成し、CodedUI.Thisを使用してフィールドにテキストを入力しようとしているが、私のコードです:コード化されたUI:HRESULT E_FAILがCOMコンポーネント

var app = ApplicationUnderTest.Launch(@"C:\app.exe"); 
var loginEdit = new WinEdit(); 
loginEdit.SearchProperties.Add(WinEdit.PropertyNames.ControlName, "textEditLogin"); 
loginEdit.Text = "test005"; 

エラー:私はこのコードを使用する場合System.NotSupportedException: SetProperty "Text" is not supported on control type: Window.

Keyboard.SendKeys(loginEdit, "test005"); 

を私が持っているエラー:Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: (Failed to get the message for an exception of type Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException due to an exception.) ---> System.Runtime.InteropServices.COMException: HRESULT E_FAIL has been returned from a call to a COM component

これは私のWinEditのプロパティです: WinEdit

何が問題なのですか?

+0

WinWindow、ないWinEditです。この権利を得るには、[基本チュートリアル](http://www.evoketechnologies.com/blog/windows-automation-testing-coded-ui/)を使用してください。 –

+0

なぜコントロールがWinWindowなのか分かりません。 このコントロールのControlTypeは「編集」です。 WinWindowの場合、このコントロールにテキストを入力するにはどうしたらいいですか? –

+0

loginEdit(WinWindow)のコントロールタイプを変更し、 "Keyboard.SendKeys(loginEdit、" test005 ");"私は同じエラーがあります。 –

答えて

0

問題は、私が必要とするコントロールが見えなかったオブジェクトブラウザにありました。 私はWinEditを見つけるためにレコーダーを使用して、このコードを書いた:

var loginWindow = new WinWindow(); 


loginWindow.SearchProperties[WinWindow.PropertyNames.Name] = "layoutControl1"; 
loginWindow.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.ClassName, "WindowsForms10.Window", PropertyExpressionOperator.Contains)); 

var loginEdit = new WinEdit(loginWindow); 
loginEdit.WindowTitles.Add("layoutControl1"); 

Keyboard.SendKeys(loginEdit, "test005"); 
+0

将来的には、[Draw Highlight](https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.uitesting.uitestcontrol.drawhighlight.aspx)を使用して、正しいコントロールと対話しようとしていることを確認してください。 – Ryanman

関連する問題