TestComplete and Menu
От: 2bas Украина  
Дата: 17.08.06 08:01
Оценка:
Привет

Как в TestComplete можно добраться до меню???
Нужно например в Ворде нажать File->SendTo->Microsoft PowerPoint
пробовал и MainMenu и PopupMenu ниче не получаеться

делал как в примере токо для ворда

  Set p = Sys.Process("notepad")
  Set w = p.Window("Notepad", "Untitled - Notepad")
  w.MainMenu.Select "File|Open..."


но вворде меню это тулбар
добрался донего так
MsWord.CommandBars("Main Menu").Controls(1).Execute();
меню выпадает, но как дальше выбрать в нем нужный пункт???

п.с. если чето я вообще не то делаю прошу сильно не пинать
бо я этот TestComplete токо первый раз юзаю
Re: TestComplete and Menu
От: Marduk Великобритания  
Дата: 17.08.06 08:21
Оценка:
Здравствуйте, 2bas, Вы писали:

2>Привет


2>Как в TestComplete можно добраться до меню???

2>Нужно например в Ворде нажать File->SendTo->Microsoft PowerPoint
2>пробовал и MainMenu и PopupMenu ниче не получаеться
2> ...............................................

2>п.с. если чето я вообще не то делаю прошу сильно не пинать

2>бо я этот TestComplete токо первый раз юзаю

А записать действия не пробовали? Может сгенерированный код поможет решить проблему?
Re[2]: TestComplete and Menu
От: 2bas Украина  
Дата: 17.08.06 09:30
Оценка:
Здравствуйте, Marduk, Вы писали:

M>А записать действия не пробовали? Может сгенерированный код поможет решить проблему?


При записи действий записывается код типа Click(5,10);
Идет клик по координатам, а проблема в том что на разных машинах
в офисе в меню Send разное количество пунктов меню да и порядок их может не совпадать
Мне бы как то добраться до меню именно по названию пункта.
Re[3]: TestComplete and Menu
От: Marduk Великобритания  
Дата: 17.08.06 09:34
Оценка:
Здравствуйте, 2bas, Вы писали:

2>Здравствуйте, Marduk, Вы писали:


M>>А записать действия не пробовали? Может сгенерированный код поможет решить проблему?


2>При записи действий записывается код типа Click(5,10);

2>Идет клик по координатам, а проблема в том что на разных машинах
2>в офисе в меню Send разное количество пунктов меню да и порядок их может не совпадать
2>Мне бы как то добраться до меню именно по названию пункта.

Да, плохо дело. В таких меню пункты могут восприниматься как кнопки. В частности такое встречалось в некоторых нестандартных контекстных меню. Может как-то попробовать поработать с проблемным пунктом как с кнопкой?
Re[4]: TestComplete and Menu
От: 2bas Украина  
Дата: 17.08.06 10:49
Оценка:
Здравствуйте, Marduk, Вы писали:


M>Да, плохо дело. В таких меню пункты могут восприниматься как кнопки. В частности такое встречалось в некоторых нестандартных контекстных меню. Может как-то попробовать поработать с проблемным пунктом как с кнопкой?


сделал так, правда больше ИМХО это похоже на програмирование чам на тестирование
ну я и не тестер
может кому нибудь понадобиться


    var MsWord = Sys["GetOleObject"]("Word.Application") ; 
    var menu_file = MsWord.CommandBars("Menu Bar").Controls(1);
    
    var br = 0;
    var count = 0;
    while ( count < menu_file.accChildCount )
    {
        count++;
        
        if (  menu_file.Controls(count).Caption == "Sen&d To" )
        {
                var sendto = menu_file.Controls(count);
                var i = 0;
                while ( i < sendto.accChildCount )
                {
                        i++;
                        if (  sendto.Controls(i).Caption == "Skype" )
                        {
                                sendto.Controls(i).Execute();
                                br = 1;
                                break;
                        }
                }
        }
        if ( br == 1 ) break;
    }
    
    if ( br == 0 ) 
    {
        Win32API.MessageBox(0,"Can`t Find File->Send To->Skype menu" ,"Error",MB_OK | MB_SYSTEMMODAL | MB_ICONERROR);
        return 0;
    }
Re[5]: TestComplete and Menu
От: Marduk Великобритания  
Дата: 17.08.06 11:08
Оценка:
Здравствуйте, 2bas, Вы писали:

2>Здравствуйте, Marduk, Вы писали:



M>>Да, плохо дело. В таких меню пункты могут восприниматься как кнопки. В частности такое встречалось в некоторых нестандартных контекстных меню. Может как-то попробовать поработать с проблемным пунктом как с кнопкой?


2>сделал так,


Прикольное решение. Кстати, его удобно завернуть в некоторую функцию. Таких пунктов меню может быть очень много и для каждого из них такую "каракатицу" воротить нехорошо, а вот функция будет весьма кстати.

2>правда больше ИМХО это похоже на програмирование чам на тестирование

2>ну я и не тестер

А на это заморачиваться не надо. Автотестер во многих конторах (в частности в Украине) числится как программист (и зарабатывает на уровне с ними),да и тестированием такие люди занимаются весьма посредственно. А зачем, если тестирует машина, а не человек?
Re: TestComplete and Menu
От: mityaika  
Дата: 20.10.06 13:25
Оценка:
Здравствуйте, 2bas, Вы писали:

2>Привет


2>Как в TestComplete можно добраться до меню???

2>Нужно например в Ворде нажать File->SendTo->Microsoft PowerPoint

а так простым рекордом почему не сделать?
function Test1()
{
    var p, w
    p = Sys.Process("WINWORD")
    w = p.Window("OpusApp", "* Microsoft Word")
    w.Activate()
    w.Window("MsoCommandBar", "Menu Bar").mi_File.Click()
    p.Window("MsoCommandBarPopup", "File").mi_Send_To.Click()
    p.Window("MsoCommandBarPopup", "Send To").mi_Microsoft_Office_PowerPoint.Click()
}


ps: если нажатие на кнопку записывается как
w.Window("Button", "ButtonName").Click(x, y)

то легко можно выкинуть координаты, будет кликать именно кнопку
w.Window("Button", "ButtonName").Click()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.