IBM Rational Functional Tester Java

Я новичок в кодировании RFT и Java, и я пытался автоматизировать веб-приложение с помощью инструмента IBM-RFT с Java. Мне нужно щелкнуть ссылку в ячейке таблицы HTML. Во время воспроизведения он мог щелкнуть ссылки для некоторых ячеек, но для некоторых это было не так, и он щелкал выше или ниже гиперссылки в ячейке. Он может распознавать объект ссылки и распечатывать его свойства, такие как «.text», «.href», но при нажатии он нажимает на пустое место внутри ячейки, а не на ссылку, и это происходит только для некоторых ячеек. :( Есть ли лучший способ справиться с этим?Ценю любую помощь в этом.

TestObject[] tablename = root.find(atDescendant(".class", "Html.TABLE", ".id", table_name), true);
GuiTestObject tablename_obj=(GuiTestObject)tablename[0];
TestObject cellObj = tablename_obj.find(atList(atChild(".class" , "Html.TBODY"),atChild(".class" , "Html.TR",".rowIndex", row),atChild(".class" , "Html.TD",".cellIndex",col)), false)[0];
TestObject cellObjClick = cellObj.find(atDescendant(".class","Html.A"))[0];
((GuiTestObject)cellObjClick).click();

Пожалуйста помоги!


person user1135040    schedule 24.10.2014    source источник


Ответы (2)


Я могу попытаться дать вам некоторые подсказки. Метод .click() вычисляет центр объекта как точку щелчка. Поскольку вы можете получить свойство .href, и оно правильное, вы знаете, что у вас есть ссылка, по которой вы хотите щелкнуть. Возможно, что-то об экстенте объекта (прямоугольник, окружающий объект, который используется для вычисления точек внутри объекта) как-то неправильно исходит из DOM. Возможно, рассчитанная точка клика на самом деле не щелкает по какой-либо части ссылки в пользовательском интерфейсе. Вместо .click() вы можете попробовать использовать специальные координаты x, y для объекта ссылки. Обратите внимание, что координата указана относительно левого верхнего угла объекта. Таким образом, вы можете попробовать .click(atPoint(x,y)), выбрав некоторое значение (пиксели) для координаты x, y и посмотреть, повезет ли вам больше. Вы также можете попробовать получить прямоугольник ссылки (экстента), чтобы убедиться, что это выглядит правильно. Иногда я использовал .click(atPoint(1,1)). Я не уверен, что вы можете увидеть прямоугольник объекта в его свойствах, используя проводник объектов в RFT (вы можете попробовать это).

person Ken Sandler    schedule 05.01.2015

Я предпочитаю иногда использовать SelectGuiSubItem, как в примере ниже, чтобы щелкнуть ((SelectGuiSubitemTestObject) textObj).select("‹>");

Попробуйте это вместо click()

person user3230201    schedule 17.04.2015