2015-11-23 5 views
0

В IBM Rational Functional Tester я хочу знать, был ли TestObject идеально подобран.RFT: Проверка существования TestObject

Класс TestObject имеет метод exists(), к сожалению, он бесполезен, так как он обычно возвращает несколько совпадений, когда желаемый объект не совпадает.

Теперь я пытаюсь найти объект и поймать com.rational.test.ft.AmbiguosRecognitionException, но он уродлив.

Я бы хотел протестировать единственное существование объекта, возможно, просто получить количество согласованных объектов. Есть ли метод API, который я пропускаю?

ответ

0

Normaly, метод TestObject.find() должен предоставить вам массив совпадающих тестовых объектов без выброса AmbiguosRecognitionException, например.

TestObject[] matches = document_google().find(atDescendant(".type", "submit")); 
matches.length; // no. of matching objects found (3 in this case) 

Конечно объект, где вы начинаете поиск (в приведенном выше примере документ document_google() должен быть уникальным.

Подробнее о методе находят на IBM developerWorks.

+0

Таким образом, это не работает для меня. Проблема в том, что объект уже создан на карте объекта. I Когда я вызываю что-то вроде: html_list_options(). Find(), он возвращает не список, а только указатель TestObject. Если он соответствует нескольким объектам, он генерирует исключение. Проблема в том, что у меня есть несколько выпадающих меню, а желаемого объекта нет, это плохо соответствует другим выпадающим меню страницы. – neves

1

Попробуйте донастроить признание забивая (ScriptAssure под окном> pref> FunctionalTest> Воспроизведение), чтобы сделать его более строгим и посмотреть, помогает ли это. Этот метод, как вы заметили, вернет true, даже если имеется несколько совпадений. Вы можете использовать api find() @Roland), если вы имеете дело с случаем, когда может быть несколько совпадений, найденных на основе свойств распознавания карты объектов.