2011-05-04 85 views
1

我正在嘗試使用White UI-Automation framework自動化測試用例。
在這樣做時,我遇到了一些拖放問題。我試圖從一個按鈕拖動到屏幕上的一個點,我根據其他兩個點的位置計算出一個點。WPF,白色自動化,拖放掛件

發生什麼事情是單擊按鈕,然後鼠標移動到正確的位置,然後應用程序掛起,直到手動移動或單擊鼠標,然後發生丟棄並繼續測試。如果鼠標沒有收到任何手動交互,則應用程序會繼續掛起。

的代碼看起來是這樣的:

var criteria = SearchCriteria.ByText(xText); 
var yLocation = window.Get(crite); 
var yPoint = yLocation.ClickablePoint; 
criteria = SearchCriteria.ByText(yText); 
var xPoint = window.Get(crite).ClickablePoint; 
var dropPoint = new Point(xPoint.X, yPoint.Y); 
criteria = SearchCriteria.ByText(buttonName); 
var button = (Button) window.Get(criteria); 
Mouse.Instance.DragAndDrop(button, button.ClickablePoint,yLocation,dropPoint); 

不執行最後一行之後的任何代碼。

在此先感謝您的幫助。

+0

對不起丹尼爾指出下面,我忘了指定我的問題。 如果有人能幫助我「爲什麼我的測試掛起而不是完成放下功能?」或者「如何克服這個問題?」,這將不勝感激。 – Klee 2011-05-05 01:11:34

回答

2

入住這裏:http://white.codeplex.com/discussions/271672

此頁面顯示周圍的工作:

//Point the mouse for drag 

Mouse.Instance.Location = draggedItem.ClickablePoint; 

Mouse.LeftDown(); 

//Move the mouse a little down 
Mouse.Instance.Location = new Point(draggedItem.ClickablePoint.X, draggedItem.ClickablePoint.Y + 1); 

//Move to the new window 
targetWindow.Focus(); 

//Set the point to drop 
Mouse.Instance.Location = targetWindow.ClickablePoint; 

//Drop 
Mouse.LeftUp(); 
0

沒有真正的問題需要回答,但我可以嘗試給你一些(有用的)反饋。

我不知道白色的UI自動化框架,我找不到任何有用的文檔,使用您提供的鏈接。我懷疑DragAndDrop只是在drop完成之前不會返回。這與DoDragDrop在WPF中的工作方式類似。

如果是這種情況,我不會說DragAndDrop掛起,而是你的應用程序正在等待下一步完成,然後繼續前進。

//丹尼爾