QTP: невозможно использовать свойства CSS и индекса при попытке идентифицировать объект

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

Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth").Click

Итак, я попытался добавить индекс, как показано ниже:

Browser("browser").Page("page").WebElement("css:=.normalDayOfMonth", "index:=0").Click

Но теперь он вообще не обнаруживает никаких объектов. Может ли кто-нибудь помочь мне с этим? Спасибо!


Изменить: Для всех, кто сталкивался с этим, оказалось, что я использую QTP10, и, как Мотти указал ниже, поддержка CSS и Xpath была добавлена ​​только в QTP11.


person khalid13    schedule 15.08.2012    source источник
comment
Следующее работает для меня в IE8 Browser("Google").Page("Google").WebElement("css:=.gbts", "index:=0").Highlight. Пожалуйста, посмотрите, работает ли это для вас, если не попытайтесь опубликовать дополнительную информацию.   -  person Motti    schedule 15.08.2012
comment
Я получаю из-за этого общую ошибку запуска? Я использовал обычный URL-адрес Google.com   -  person khalid13    schedule 15.08.2012
comment
У меня QTP11 с установленным патчем QTPWEB_00090, возможно, вам стоит попробовать установить этот патч (если у вас его еще нет).   -  person Motti    schedule 15.08.2012
comment
У меня QTP10, и я не думаю, что у него есть функция выделения? Я попытался использовать функцию щелчка, но она воспроизвела ту же проблему. Я работаю на корпоративном компьютере, поэтому, к сожалению, не могу добавлять патчи. :( Есть ли что-нибудь очевидное, что я мог упустить из виду?   -  person khalid13    schedule 15.08.2012
comment
Я обновил свой ответ с помощью обходного пути для QTP10, пожалуйста, посмотрите.   -  person Motti    schedule 17.08.2012
comment
Обходной путь работал отлично. Спасибо!   -  person khalid13    schedule 31.08.2012


Ответы (1)


Поддержка использования CSS и XPath для идентификации тестовых объектов была добавлена ​​в QTP11, в ваших комментариях вы говорите, что используете QTP10, что объясняет, почему вы сталкиваетесь с проблемами ...

Что, вероятно, происходит, так это то, что QTP игнорирует css как нераспознанное свойство, поэтому ваше описание соответствует всем элементам, а затем, когда вы добавляете index:=0, он приносит один из невидимых элементов (например, HEAD или HTML), по которому нельзя щелкнуть.

Если все, что вы пытаетесь сделать, это сопоставить className, вы можете использовать class свойство идентификации ("class:=normalDayOfMonth") QTP.

Кстати, функция Highlight - это недокументированная функция, аналогичная функциям подсветки репозитория объектов, и может быть очень полезна при диагностике неисправностей.

person Motti    schedule 15.08.2012
comment
Однако я также успешно смог использовать CSS и в других случаях. Если бы этого не было в QTP 10, как это возможно? - person khalid13; 15.08.2012
comment
@ khalid13 ты уверен? Это очень странно, AFAIK они были добавлены в QTP11. - person Motti; 15.08.2012
comment
Да, сэр, эта строка кода, которую я использую в другом месте проекта, работает как шарм: .Link("css:=.selectable","index:=2").Click Вот почему я был сбит с толку, почему она не работает для WebElements. @Motti - person khalid13; 15.08.2012
comment
@ khalid13 меня поддерживает Интернет вверх (а также документация QTP), CSS был добавлен в QTP11. Может случиться так, что когда вы используете Link QTP возвращает только <a> элементы, а .selectable игнорируется, можете ли вы создать демонстрационную страницу с выбираемыми и невыбираемыми элементами и посмотреть, делает ли что-нибудь CSS? - person Motti; 16.08.2012
comment
Я только что создал веб-страницу, чтобы проверить свою теорию, и, похоже, вы правы - она ​​игнорировала спецификацию класса CSS и просто выбирала первую доступную ссылку. Я собираюсь принять ваш ответ; Спасибо за всю вашу помощь. :) @Motti - person khalid13; 16.08.2012