Перейти к содержимому

Фотография

WinObject класса "Internet Explorer_Server"


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 31 мая 2007 - 11:14

Добрый день.

Такая проблема - в MMC вставлена страница с линками. QT Inspector линки не видит, при наведении мыши показывает только WinObject - Internet Explorer_server. Если записывать скрипт - при кликах на эти линки просто ничего не записывает.

Версия QT - 9.2, все Add-in-ы включены (Web, ActiveX, Visual Basic)

Вопрос - как работать с содержимым объекта "Internet Explorer_server"?
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#2 globe

globe

    Постоянный участник

  • Members
  • PipPipPip
  • 216 сообщений
  • ФИО:Богданова Ирина
  • Город:Москва


Отправлено 31 мая 2007 - 11:19

Я сталкивалась с такими вещами в Internet Explorer.
Подробно в проблеме не разбиралась, но практика показала, что если запускать Internet Explorer после запуска QTP, то все объекты распознаются, как надо.
Если кто знает, в чём дело, будет очень интересно почитать.
  • 0

#3 Luceus

Luceus

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Украина

Отправлено 04 июня 2007 - 06:39

globe, все верно!

QTP не распознает элементы страницы браузера, если IE был запущен перед запуском QTP.

Как с этим бороться? Никак :-) Запускайте браузер после.
  • 0
Мой блог - Этот сайт закрыт.

#4 ArtemRudenko

ArtemRudenko

    Постоянный участник

  • Members
  • PipPipPip
  • 248 сообщений
  • ФИО:Руденко Артем Михайлович
  • Город:Минск


Отправлено 04 июня 2007 - 08:32

У нас эта эпопея тянулась с ... года и начиналось всё это ёщё на WinRunner, а закончилось тем, что просто вставили пометку для всех новых и не новых тестировщиков, о том, что следует запускать сначала WinRunner, а уж потом тестируемое приложение, да и вообще продукты от Mercury достаточно капризные(и порой помогает просто перезапуск винды,перегрузка тестируемого приложения,позиция звезд,проверка загруженных процессов,наличие отсутствие апдейтов винды и тд и тп).
  • 0
И всё-таки она вертится...

#5 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 04 июня 2007 - 09:37

Дело в том, что у меня не броузер IE в чистом виде. У меня встроенный в MMC компонент типа "Internet Explorer_Server".
Пробовал запускать MMC после QTP - не помогает. Пробовал выгружать все IE и даже explorer перед запуском QTP - не помогает.



:crazy:
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#6 Luceus

Luceus

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Украина

Отправлено 04 июня 2007 - 10:03

Попробуйте выполнить данную функцию при закрытых всех браузеров, окромя тестируемого приложения. Если функция вернет 0, то значит система не находит в данном приложении компоненты IE. Я недавно столкнулся с проблемой. У меня работало одно приложение, в котором был внутренний браузер. Тестирование не удавалось провести, и потом, как выяснилось, причина была в том, что IE браузер был не уникален. И QTP пыталось работать с другим приложением.

Function GetCountBrowser
     Set osa = CreateObject ("Shell.Application")     
    If isObject(osa) Then
          ie_count = 0          
          Set ie_windows = osa.Windows          
          For Each ie_window In ie_windows
               On Error Resume Next             
               windows_type = ""
               windows_type = TypeName(ie_window.document)
               
               If UCase(windows_type) = "HTMLDOCUMENT" Then          
                    ie_count = ie_count + 1
               End If
          Next       
          Set ie_windows = Nothing
     End If     
     Set osa = Nothing
     GetCountBrowser = ie_count
End Function

Успехов!

p.s.: есть ли возможность тестировать контент в данном приложении через IE?
  • 0
Мой блог - Этот сайт закрыт.

#7 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 04 июня 2007 - 12:03

Спасибо большое за подержку!

Однако скрипт возвращает 0. Значит ли это, что контроллы внутри HTML-компонента в принципе недоступны для QTP?

Кстати, нашёл доступный всем пример такого объекта - правая часть оснастки Services (Службы) в режиме Extended имеет точно такой же тип - "Internet Explorer_Server" и нажатия на ссылки "Start/Stop/Pause service" не записываются QTP.

К сожалению в моём случае отдельно от приложения контент не имеет смысла, т.к. нажатие на ссылку - это всего лишь вспомогательное действие для доступа к остальному GUI, который уже нормальное MMC окно.
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#8 Luceus

Luceus

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Украина

Отправлено 04 июня 2007 - 12:37

В Вашем приложении отображается статическая информация? Можно ли использовать JavaScript иньекции? Попробовать провести тестирование используя элементы DOM'a. Или необходима проверка синхронизации некой работы приложения с окном браузера?
  • 0
Мой блог - Этот сайт закрыт.

#9 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 04 июня 2007 - 13:33

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

В качестве обходного манёвра можно попросить разработчиков скидывать в файл нужную инфу по горячей клавише - это позволит смотреть значения контролов.
А также справедливо потребовать реализации всей GUI-функциональности через клавиатуру - это позволит худо-бедно вслепую нажимать на ссылочки.

Однако чертовски интересно про JavaScript иньекции и про DOM! Где можно узнать об этом подробней?
Я находил в интернете кусок кода, который позволет получить доступ к DOM имея Hwnd окна. Однако тот код был на VB и попытка перевести его в QTP обломалась об описание структуры (в QTP ведь нет такого понятия?). Вот ссылочка на него: http://www.mvps.org/...vb6/iedom.shtml

:crazy:
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#10 Yury

Yury

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Yury

Отправлено 05 июня 2007 - 02:45

Приложение в начальной стадии разработки и неизвестно, чего туда добавят ещё ...

Вы можете попросить разработчиков, чтобы они специально для тестирования сделали non-GUI интерфейс, например COM.
С COM будет работать всё что угодно, начиная с VBScript и кончая QTP.

Однако чертовски интересно про JavaScript иньекции и про DOM! Где можно узнать об этом подробней?
Я находил в интернете кусок кода, который позволет получить доступ к DOM имея Hwnd окна. Однако тот код был на VB и попытка перевести его в QTP обломалась об описание структуры (в QTP ведь нет такого понятия?).

Систематического описания я не нашёл, но если долго лазить по разным сайтам, то многому можно научиться.

Например, в своём семинаре в похожем случае для изучения DOM я использую местную копию "Mouseover DOM inspector". Этот "Mouseover DOM inspector", вообще-то, является достаточно занятной штукой. Может быть он и Вам сможет помочь.
  • 0

#11 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 05 июня 2007 - 08:28

Вы можете попросить разработчиков, чтобы они специально для тестирования сделали non-GUI интерфейс, например COM.
С COM будет работать всё что угодно, начиная с VBScript и кончая QTP.


Да, это первое о чём мы попросили разработчиков, однако ответ был такой: "MMC это настолько сложно, что встроить туда адекватный COM-объект займёт очень очень много времени". В принципе нет причин им не верить.


Mouseover DOM inspector - действительно очень интересный. :blush:
Однако для моих целей он бесполезен. Нету у меня броузера, в котором можно этот скрипт выполнить, есть только MMC окно.

Спасибо за поддержку!
Похоже, что придётся строить работу с этой частью GUI на костылях.


На всякий случай ещё раз поставлю задачу: "Есть MMC окно (например Services.msc в режиме Extended), в него встроен объект типа 'Internet Explorer_Server'. Как с помощью QTP нажать на ссылочки внутри этого объекта?"

:crazy:
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#12 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 05 июня 2007 - 10:33

На всякий случай ещё раз поставлю задачу: "Есть MMC окно (например Services.msc в режиме Extended), в него встроен объект типа 'Internet Explorer_Server'. Как с помощью QTP нажать на ссылочки внутри этого объекта?"

:crazy:

Просмотр сообщения


Предлагаю сделать так, как написано в документации:
1) Включить ActiveX Add-in
2) Попробовать зарегистрировать браузер (Start>Quick Test Proffesional>Tools>Register New Browser Control)
  • 0
Best regards,
Майк.

#13 Denwer

Denwer

    Новый участник

  • Members
  • Pip
  • 21 сообщений

Отправлено 05 июня 2007 - 11:13

Гениально! :clapping:


Похоже, это как раз то, что нужно.
Он действительно стал распознавать его как HTML.

Правда сейчас если позаписывать работу с HTML, а потом закрыть окно MMC, то возникает ошибка "SherutRashiTitle_983720: mmc.exe | The memory could not be read". Но это уже мелочи :)


Спасибо!!!
  • 0
Денис.

+7 903 726 02 79 (рабочие дни 10:00 - 18:30)
Denis.Kobychev@kaspersky.com
resume@kaspersky.com
http://www.kaspersky.ru

Изображение

#14 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 05 июня 2007 - 11:19

По-поводу эксепшена. Попробуйте машину почистить от шпиёнов чем-нибудь типа SpyBot Search&Destroy, хотя не могу гарантировать, что дело в этом.
  • 0
Best regards,
Майк.


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных