Есть вебприложение с меняющейся менюшкой. При наведении мыши на пункт меню появляется подменю с несколькими пунктами.
Проблема:
На определённой странице менюшка содержит пункт "Создать" -> "уведомление". На других страницах пункта "Создать" нет.
Я могу попасть на эту определённую страницу двумя способами, принципиально отличающимися (в одном случае "с нуля", во втором - грубо говоря "повторный приход").
Страница содержит контент для 24 типов договоров, с большинством из которых можно делать одно и то же с вариациями. То есть вариантов 2*24. На самом деле, больше, но не суть.
Сначала я написал скрипты для прохождения по одному пути с посещением этой страницы.
link_создать().hover(); link_уведомление().click();Всё работало прекрасно со всеми 24 типами договоров, работало быстро, и я был доволен.
Потом приступил к скриптованию второго пути. Так как страница одна и та же, то и скрипт для выполнения действий на этой странице тот же. Логично. Однако RFT упорно не хотел видеть объект "link_уведомление()", хотя при выполнении первого пути этот момент проскакивал без сучка и без задоринки.
Решил добавить для второго пути своё определение нужного мне объекта:
link_создать().hover(); if (Constant.isRetro) {link_уведомление2().click();} else {link_уведомление().click();}Однако, на одном типе договора (на котором добавлял этот второй объект в RFT) объект виден и выполняется .click(). А на всех остальных типах RFT не видит его!
Решил пойти путём "из пушки по воробьям": чтобы не плодить количество объектов захотел использовать find() с параметрами.
Кусок исходника страницы:
<td style="white-space:nowrap;width:100%;"><a class="ctl00_MainMenu_1 MasterMenuSubItemStyle ctl00_MainMenu_6" href="OCInputForms/OCInput.aspx?Type=Decision" style="border-style:none;font-size:1em;"><img src="Images/mail_folder16.gif" alt="" style="border-style:none;vertical-align:middle;" /> Уведомление</a></td>Скрипт:
link_создать().hover(); TestObject[] foundTOs = browser_htmlBrowser().find(atList(atProperty(".text","Уведомление"),atDescendant(".class", "Html.A"))); System.out.println("kol-vo elementov = " + foundTOs.length); //лично для себя выводил в процессе дебага GuiTestObject link_notice = new GuiTestObject(foundTOs[0]); link_niotice.hover(); link_notice.click();Ура! RFT объект находит и выполняет клик! Но ищет 20 секунд :(((
Вопрос: Что я делаю не так? Или как можно ускорить FIND? Может быть (что скорее всего), я неправильно понимаю метод FIND? В смысле какие параметры в нём указывать для ускорения.
Посоветуйте, пожалуйста. Заранее благодарен.