Page.Wait() убивает всех Child-ов у Page
#1
Отправлено 20 ноября 2007 - 16:52
Есть метод который должен кликнуть кнопочку, дождаться завершения загрузки появившего окна, проверить что на нем есть нужная таблички и закрыть откно. Кусочек из кода:
pagePopUp = Sys.WaitProcess("iexplore",TimeOut).WaitWindow("*",WindCaption,0,TimeOut).
WaitWindow("Internet Explorer_Server", "*", 0, TimeOut).WaitPage("*",TimeOut);
pagePopUp.Wait();
Delay(5);
На последней строчке Delay(5); ставлю точку останова. Скрипт тормозит именно тогда когда появившееся окно полностью загружено (т.е. когда нада).
НО ПОСЛЕ этого pagePopUp типа page не будет иметь Childoв. Мало того, в Object Browser-е у Page нет даже плюсика, чтобы поглядеть на ее чайлдов. Так же ChildCount = 0 (в Object Browser-е и через Ctrl + F7).
НИКАКИЕ Refresh() не помогают. В Object Browser-е тоже рефрешил все родительские ноды. ВСЕ.
НО: если закрыть TC, открыть сново, поглядеть в Object Browser-е - все чайлд объекты видны - без проблемм..
Если закомментить строчкку pagePopUp.Wait(); и выдержать таймаут пока страничка не загрузиться - тоже все ок... Но расставлять Delay - имхо извращения...
Помогите плиз....
Еще раз уточню: в Object Browser-е страничка эта тоже без чайлд объектов in fact...
Спасибо
PS да... еще забыл... Если навести волшебную мешеньку на нужный объект а потом в появившемся окне кликнуть "показать его в дереве" - он развернет всех чайлдов у Page...
#2
Отправлено 21 ноября 2007 - 04:55
Версия TestComplete? Можете работающий c доступной страницей пример предоставить?
Дмитрий
#3
Отправлено 21 ноября 2007 - 07:14
Здравствуйте.
Версия TestComplete? Можете работающий c доступной страницей пример предоставить?
5.11.432.7
Приобретенная версия.
Страничку предоставить к сожалению не могу :(
#4
Отправлено 21 ноября 2007 - 08:10
Это правило такое? если страничка отрывается с другой странички, то для базовой страницы нужно ставитьWait() ?
хм....
#5
Отправлено 21 ноября 2007 - 09:53
То есть, проблема в том, что ваша страница открывает другую страницу в отдельном окне, и ТС не может работать с этой новой страницей? Как конкретно создаётся эта страница (запостите кусочек скрипта со страницы)? Попробую у себя пример сделать.
Дмитрий
#6
Отправлено 21 ноября 2007 - 10:30
Здравствуйте.
То есть, проблема в том, что ваша страница открывает другую страницу в отдельном окне, и ТС не может работать с этой новой страницей? Как конкретно создаётся эта страница (запостите кусочек скрипта со страницы)? Попробую у себя пример сделать.
Да .Кнопочка, которая открывает PopUp (в том же процессе)
pDefault.INPUT.WaitChild(btnBrowseName,0).Click();
pDefault.Wait();
WindCaption = "*Dest*";
parentControl = "INPUT";
ChildControl = "ctl00_cphMain_ccDB_tbSearchDestination";
break;
Sys.WaitProcess("iexplore",TimeOut).WaitWindow("*",WindCaption,0,TimeOut).
WaitWindow("Internet Explorer_Server", "*", 0, TimeOut).WaitPage("*",TimeOut).Wait();
pagePopUp = Sys.Process("iexplore").Window("*",WindCaption,0).
Window("Internet Explorer_Server", "*", 0).Page("*");
pagePopUp.Wait();
Если закоментить вторую строчку - НЕ работает.
Note: главная страничка pDefault НЕ перегружается после открытия PopUp окна...
#7
Отправлено 22 ноября 2007 - 05:47
Сделал простой пример ASP.NET странички, работает без проблем. По всей видимости, надо разбираться как ТС работает непосредственно с вашим приложением. Но с этим уже в службу поддержки (support@automatedqa.com).
Дмитрий
#8
Отправлено 22 ноября 2007 - 17:15
Здравствуйте.
Сделал простой пример ASP.NET странички, работает без проблем. По всей видимости, надо разбираться как ТС работает непосредственно с вашим приложением. Но с этим уже в службу поддержки (support@automatedqa.com).
спасибо и за это :)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

