в их саппорт не обращаюсь, очень "порадовало" когда они думали две недели и из всех необходимых мне ответов получил только ссылку на SDK для моей версии :/
тестируется копирование на, условно говоря, флешку и с неё на пк. скрипт открывает папку с файлами для копирования, копирует нужную папку, закрывает все это, открывает флешку и имитирует нажатие ctrl+v, после чего я замеряю время копирования файлов. после этого я имитирую ctrl+a, ctrl+с, закрываю флешку, открываю папку на пк и копирую туда файлы с флешки с таким-же замером времени. в конце теста система приводится в изначальное состояние. скрипты были записаны через Record Script, после допилены напильником (дописаны дилеи, таймеры). в начале я написал и отладил копирование на флешку.
как показала практика, такой вариант Aliases.Explorer.wndTestCopying.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView обращения к алиасам оказался стабильнее чем тот который генерирует ТС во время записи.
пример функции, отвечающей за старт теста:
function CopyOneToFlash() { //открываются нужные папки OpenFolderForCopyingToFlash(); //предполагается, что папка wndFilesToFlash уже открыта Aliases.Explorer.wndFilesToFlash.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.ClickItem("One", 0); Aliases.Explorer.wndFilesToFlash.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Keys("^c"); Aliases.Explorer.wndFilesToFlash.Close(); //открываю папку в которую необходимо скопировать CommonScripts.OpenFlashDisk(); //запускаю само копирование с таймером и логированием CopyToFlashDisk(); } //*** function CopyToFlashDisk() { Aliases.Explorer.wndCabinetWClass3.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Keys("^v"); CommonScripts.ListenCopyWindow(); Delay(2000); }короче, оно работало и работало стабильно. пока я не добавил копирование с флешки на пк. вот эта функция запускает весь кейс
//*** function StartCopyOne() { try { CommonScripts.OpenRootTestDataFolder(); ToFlash.CopyOneToFlash(); //ToPC.StartCopyFromFlashToPC(); CommonScripts.ClearFlashDisk(); CommonScripts.CloseFlashDisk(); } catch (exception) { Log.Error("Error", exception.description); } }стоит раскомментировать ToPC.StartCopyFromFlashToPC() и тест валится. вот в этом методе, который при вызове из ToFlash.CopyOneToFlash() отлично срабатывает после чего папка закрывается
function OpenRootTestDataFolder() { Aliases.Explorer.wndShell_TrayWnd.ReBarWindow32.ToolbarWindow32.ClickItem("Show Desktop", false); Delay(1000); Aliases.Explorer.wndWorkerW.SHELLDLL_DefView.FolderView.DblClickItem("My Computer", 0); Delay(1000); Aliases.Explorer.wndCabinetWClass.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.DblClickItem("System (C:)", 0); Delay(1000); Aliases.Explorer.wndCabinetWClass.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.DblClickItem("TestCopying", 0); Delay(2000); }