Перейти к содержимому

Фотография

ТС не воспроизводит клики мышкой.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 01 ноября 2010 - 13:13

Тестируется интегрированное в оболочку винды ПО. win xp sp3 со всеми обновлениями, tc7.52
в их саппорт не обращаюсь, очень "порадовало" когда они думали две недели и из всех необходимых мне ответов получил только ссылку на 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);
}

  • 0

#2 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 22 ноября 2010 - 11:51

Здравствуйте.

Подозреваю, что проблема в дереве Name Mapping. Попробуйте звать метод RefreshMappingInfo для всех промежуточных родительских объектов проблемного объекта перед доступом к нему. Если поможет, то проблема действительно в этом.
  • 0
С уважением,
Дмитрий

#3 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 22 ноября 2010 - 12:46

Здравствуйте.

Подозреваю, что проблема в дереве Name Mapping. Попробуйте звать метод RefreshMappingInfo для всех промежуточных родительских объектов проблемного объекта перед доступом к нему. Если поможет, то проблема действительно в этом.

я тоже склоняюсь к этому варианту, но рефреш не помогает :/
  • 0

#4 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 22 ноября 2010 - 13:40

Здравствуйте.

В таком случае, советую обратиться в службу поддержки. Даже если они долго будут разбираться, всё же они это сделают. Работа у них такая.
  • 0
С уважением,
Дмитрий


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных