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);

Любой код после этой последней строки не выполняется.

Заранее благодарю за любую помощь.


person Klee    schedule 04.05.2011    source источник
comment
Извините, как указал Дэниел ниже, я забыл уточнить свой вопрос. Если кто-нибудь может помочь мне с тем, почему мой тест зависает, а не завершает функцию сброса? или как решить эту проблему?, было бы очень признательно.   -  person Klee    schedule 05.05.2011


Ответы (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();
person Jurjen Ladenius    schedule 05.10.2011

На самом деле нет вопроса, на который нужно ответить, но я могу попытаться дать вам некоторые (полезные?) отзывы.

Я не знаю о структуре White-UI-Automation и не смог найти полезную документацию по предоставленной вами ссылке. Я подозреваю, что DragAndDrop просто не вернется до завершения сброса. Это аналог того, как DoDragDrop работает в WPF.

Если это так, я бы не сказал, что DragAndDrop завис, скорее ваше приложение ожидает завершения сброса, прежде чем двигаться дальше.

//даниэль

person Daniel    schedule 04.05.2011