2012-05-14 3 views
1

Очевидно, что я новичок в QTP. Я использую его для проверки HTML-страницы с несколькими формами; один за другим.QTP: Почему Smart Identification всегда вызывается?

Он хорошо работал. Теперь я постоянно вижу это:

Вызывается механизм интеллектуальной идентификации - объект не найден.

Почему это происходит? Все, что я пытаюсь сделать, это установить фокус на ввод текста и ввести некоторые данные и нажать «Отправить».

Любые полезные советы были бы замечательными. QTP имеет такую ​​крутую кривую обучения.

Спасибо!

Позвольте мне немного уточнить: на этой HTML-странице представлено 40 форм, а некоторые из них используют элемент ввода с идентичным именем. Это проблема?

<input type="text" name="meetingId" /> 
<input type="text" name="meetingid" /> 

Обратите внимание на чувствительность caseid/meetingid к сведению в этих двух примерах. Это проблема?

ответ

2

Когда QTP записывает (или изучает) объект, он захватывает набор свойств/значений, которых достаточно, чтобы однозначно идентифицировать этот объект. Кроме того, если интеллектуальная идентификация включена, она будет захватывать несколько дополнительных пар ценностей/значений для будущего использования.

При выполнении теста, если обнаруженный объект не найден (ни один из элементов не соответствует описанию или не имеет нескольких элементов), он попытается использовать дополнительные свойства, чтобы найти элемент.

Если сначала ваш тест запущен без активации интеллектуальной идентификации, и теперь он запускается, это означает, что HTML изменился, так что описание больше не однозначно идентифицирует элемент, а QTP дает обоснованное предположение о том, какой элемент тестирует (по-видимому, в вашем случае это хорошее предположение, поскольку тест все еще работает).

QTP считает, что это не оптимально, поскольку это действительно догадка, поэтому интеллектуальная идентификация отображается в отчете. В действительности вам предлагается уточнить ваш тест, улучшив описание тестового объекта.


еще несколько деталей: Если набор свойств, определенных в диалоговом окне идентификации объекта (Tools -> Object Identification) не достаточно, чтобы идентифицировать элемент однозначно QTP добавляет Порядковый идентификатор обычно типа Index, что означает, "Из N элементов, соответствующих описанию использовать #X". Порядковый идентификатор считается последним средством, и QTP будет пытаться использовать интеллектуальную идентификацию до, прибегая к использованию порядкового идентификатора. Поэтому, если ваш объект использует порядковый идентификатор, он будет использовать интеллектуальную идентификацию, даже если HTML-страница вообще не изменилась.
Исключение из этого правила заключается в том, что существует еще одна оптимизация использования source index (и начиная с QTP 11 сгенерированное выражение XPath), которое может помочь идентифицировать объект. Если они активны (Tools -> Options -> Web -> Advanced -> Run settings), и предложенный элемент соответствует существующему описанию (не включая порядковый идентификатор), тогда интеллектуальная идентификация не используется.

Если вы проверяете идентификации объекта Browser «s вы увидите, что нет нет свойства, приведенного в описании, следовательно, если более чем один браузер существует, мы всегда получим порядковые и смарт идентификации будет пытаться бежать.

+0

Чрезвычайно полезное объяснение, спасибо. Тем не менее, я только что создал новый тестовый файл, в котором я записываю только одно действие на той же странице. Проблема в том, что я все еще получаю интеллектуальную идентификацию. На этот раз он говорит, что объект не уникален (найдено 3 объекта). Исходное описание: micclass = Browser. Он также имеет несоответствие описания страницы, где говорится, что объект не был найден с использованием описания тестового объекта. Проверьте свойства объекта. – fumeng

+0

Итак, если это совершенно новая запись ... как я это делаю ... Я не должен получать какую-либо умную идентификацию. Вот почему это так странно. – fumeng

+0

@fumeng Я добавил еще немного информации в свой ответ. Это объясняет, почему вы получаете смарт-идентификатор для браузера. AFAIK, если вы получаете smart-id для приложения, которое не изменилось с момента создания теста, оно всегда должно быть связано с несколькими совпадениями и никогда из-за не найденного объекта. – Motti

Смежные вопросы