TestComplete: когда не работает метод Drag
@ Пн, 22 декабря 2008, 11:11Иногда записанный TestComplete'ом код не воспроивзодится так, как хотелось бы. Один из "проблемных" методов - метод Drag(), который позволяет перетащить объект на другое место. В этом случае можно воспользоваться методами MouseDown() и MouseUp() объекта Sys.Desktop для создания собственной функции перетаскивания.
function DragDrop(obj, deltaX, deltaY)
{
var iX = obj.ScreenLeft + obj.Width/2;
var iY = obj.ScreenTop + obj.Height/2;
Log.Picture(obj.Picture(), "Object to be moved");
obj = Sys.Desktop.ObjectFromPoint(iX + deltaX, iY + deltaY);
Sys.Desktop.MouseDown(VK_LBUTTON, iX, iY);
obj.HoverMouse(obj.Width/2, obj.Height/2);
Sys.Desktop.MouseUp(VK_LBUTTON, iX + deltaX, iY + deltaY);
}
Эта функция нажимает левую кнопку мыши в центре объекта, который надо перетащить, а затем отпускает кнопку в новом месте. Пример использования функции для перемещения иконок на панели инструментов Быстрый запуск:
function Test3()
{
var w1 = Sys.Process("Explorer").Window("Shell_TrayWnd").Window("ToolbarWindow32", "Quick Launch");
DragDrop(w1, -30, -20);
}
