2016-08-05 6 views
0

私がしようとしているのは、WPFデータグリッドの行をダブルクリックすることです。私は私のマシン上でのテストのパスを、これを実行するが、私はMTMを経由して同じテストを実行したときに、私は次のエラーを取得するときCoded UIテストをMTMで実行すると、Mouse.DoubleClickが正しく機能しないのはなぜですか?

WpfTable invoiceList = new WpfTable(base.MainWindow); 
invoiceList.SearchProperties.Add(WpfTable.PropertyNames.AutomationId, "datagridID"); 
invoiceList.WaitForControlReady(15000); 

Mouse.DoubleClick(invoiceList.GetRow(0)); 

Test method org.Application.Automation.TestCases.CommentsTests.VerifyExistingCommentsTest threw exception: Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: Cannot perform 'DoubleClick' on the control. Additional Details: TechnologyName: 'UIA' ControlType: 'Row' FrameworkId: 'WPF' ---> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.

私は、次のコードを使用していますこれを達成するために、私はこれをどのように修正することができるかについて誰かが正しい方向を指すことができましたか?

+0

申し訳ありません私はこれを尋ねるのは愚かですが、ただ確認したいのですが、ダブルクリックしているボタンまたはコントロールは手動でダブルクリックできますか? – Siva

+0

あなたの検索が、クリックしようとしているがグリッドのデータセルを表示していないかどうかを確認してください。 – Siva

+0

@Sivaそれは手動でダブルクリックすることができます。自分のマシンで同じ(自動化された)テストを実行すると、テストはパスしますが、MTMで実行すると失敗します。 –

答えて

0

他の誰かがこの問題に直面している場合は、私のコードを以下のように変更して動作させました。

WpfControl row = invoiceList.GetRow(0); 
row.WaitForControlReady(); 

Mouse.DoubleClick(new System.Drawing.Point(row.BoundingRectangle.X + row.BoundingRectangle.Width, row.BoundingRectangle.Y + row.BoundingRectangle.Height/2)); 

ので、代わりのWpfRowオブジェクトをダブルクリック

は、私はMouse.DoubleClick(新しいSystem.Drawing.Point())オプションを使用し、パラメータとして、中心点(すなわちSystem.Drawing.Point)を通過しました。以前のアプローチがうまくいかなかった理由については、私は説明できません。

関連する問題