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

Фотография

Распознование окон


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

#1 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 17:28

Привет всем,

Кто-нибудь сталкивался с проблемой разности распознования окон в Бровзере при разных версиях Силк-Теста.

У меня возникла такая проблема. У клиента 7 версия, у меня 6.5. Настройки все одинаковые, но у клиента не находит ряд обьектов!!!
Причем, что мне важно, находит таблицу, но без единой колонки!!!

С моей стороны все работает нормально....
У кого-какие идеи, помогите, плиз :aggressive: :help: :blush:
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 17:37

А с таблицами как раз и будут проблемы, особенно если у них бордер нулевой.
Выход упирается в настройки расширений, а именно:
В меню Options > Extensions выбираем броузер, для которого настраиваем расширения и жмем кнопку Extension. В появившемся диалоговом окне можно увидеть параметры настройки таблицы Borderless Table и ползунок, регулирующий уровень распознавания таблицы (назовем это так). Так вот, если этот уровень установить в 1, то все колонки будут видны.

Есть принципиальный недостаток. Увидятся ВСЕ таблицы, то есть все то, что помещено в блоки <table></table>, в том числе и формы, элементы которой запиханы по ячейкам таблицы.

Этот недостаток можно компенсировать локализацией этих настроек. Так, динамически уровень распознавания таблиц можно установить следующим кодом:
BrowserPage.SetUserOption ("ShowBorderlessTables",1,USEROPT_DEFAULT)
.... // Тут добавляем нужные действия
BrowserPage.SetUserOption ("ShowBorderlessTables",0.5,USEROPT_DEFAULT)// Восстанавливаем предыдущее значение

Это конечно изврат, но уже крутиться можно
  • 0

#3 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 17:50

KaNoN спасибо за быстрый ответ.

А мог бы ты еще подсказать что значит 0 бордер. Я всегда думал, что нулевой бордер - это таблицы, которые не имеют тагов таблицы и являются отформатированым текстом, который Силк распознает как таблицу.
  • 0

#4 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 17:55

0 бордер означает, что таблица объявлена так:
<table border=0>
  ...
</table>
То есть, у этой таблицы визуальных бортиков нет. Проблема в том, что СилкТест не всегда видит такие таблицы (иногда это, конечно, можно сделать преимуществом). Но, если Силк где-то распознал таблицу и нашел колонку, то будьте уверены, что это не отформатированный текст, а именно таблица
  • 0

#5 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 18:05

Еще раз спасибо за ответ! :blush:
Все-таки интересно, как Силк "мудро" работает с таблицами. :aggressive:

А вообще буду пробовать.
  • 0

#6 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 18:13

Все-таки интересно, как Силк "мудро" работает с таблицами.

Кстати говоря, слово "мудро" можно было и без кавычек написать.

Дело в том, что в таблицы помещаются не только сгруппированные по столбцам данные. Те же формы ввода, да и любой другой текст, разбитый на секции, зачастую реализованы в виде таблиц. И если Силк их будет все распознавать, то фрейм получится очень неудобным и громоздким. Так что такая работа Силка с таблицами обусловлена оптимизацией структуры окон.

Поэтому такие настройки, по которым видятся ВСЕ таблицы лучше прибегать исключительно для тех таблиц, которые однозначно должны быть видны. В остальных случаях лучше уровень распознания таблиц держать на уровне 0.5 , так как это оптимальный уровень. Как с этим работать я рассказал. Если надо, то я решение этой проблемы могу описать на примере
  • 0

#7 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 18:27

Да у меня аппликация только из одних таблиц и состоит....
На уровне 0.5 они распознавались некорректно, много вообще не распознавалось, что затрудняло написание скриптов. Покопавшись по докам, я обнаружил, что оптимальный метод - использовать 0.76 уровень распознавания - его и использую.

Но, вернувшись к проблеме, если Силк не распознал таблицу - ведь он должен распознать обьекты что в ней находятся. Насколько я помню, когда я ставил уровень таблицы 0 - все обьекты были, правда они не были посортированы по таблицам. В моем случае, обьекты что находятся в таблице - вообще перестали существовать в декларации!!! Или это нормально, при таком распознавании таблицы? Заранее благодарен.
  • 0

#8 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 18:38

Насколько я помню, когда я ставил уровень таблицы 0 - все обьекты были, правда они не были посортированы по таблицам. В моем случае, обьекты что находятся в таблице - вообще перестали существовать в декларации!!! Или это нормально, при таком распознавании таблицы?

Думаю, это естественно. Если уровень таблицы 0, то будут распознаваться только те таблицы, у которых border будет ненулевым, а таблицы без border-а не будут видны вообще (считайте, что их нет в принципе). А элементы внутри таблицы в этом случае будут видны по другому пути, отличному от других уровней таблиц. Некоторые элементы (такие как колонки) вообще пропадут бесследно (логично, если нет таблицы, то и нет колонки этой таблицы). Останутся максимум тексты и элементы управления, которые были помещены в таблицу.

оптимальный метод - использовать 0.76 уровень распознавания

Хорошо, что есть оптимальный вариант. Мне не так давно тоже пришлось решать такую проблему, но мне пришлось динамически варьировать этот уровень от 0.5 до 1.0, то есть определенный кусок фрейма описан при уровне 0.5, а другой при уровне 1.0 и менять их нужно было прямо в програмном коде, что не очень хорошо, зато и фрейм остался удобным и задачи выполняются как надо.
  • 0

#9 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 18:45

А элементы внутри таблицы в этом случае будут видны по другому пути, отличному от других уровней таблиц. Некоторые элементы (такие как колонки) вообще пропадут бесследно (логично, если нет таблицы, то и нет колонки этой таблицы). Останутся максимум тексты и элементы управления, которые были помещены в таблицу.


В том то и дело, что элементы управления - линки и тексты, что были в таблице, перестали существовать ни по этому ни по другому пути... Жаль, что я не имею прямой доступ к клиентской машине - так бы такие вопросы быстрее бы решались.
  • 0

#10 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 18:51

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

Скорее всего в уровне распознания таблиц и кроется проблема (на клиентской машине этот уровень мог быть другим или какая-то галочка не включена и все :aggressive: - набитые шишки и никакого удовольствия). А линки могут не распознаваться, если вырубились расширения. Агент от долгой работы может уставать и его глючит. То есть как вариант, нужно перестартовывать агента хотя бы перед запуском определенной группы тесткейсов. Но это так, для информации. Если сейчас заработает как надо, то это очень хорошо :blush:
  • 0

#11 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 13 марта 2006 - 18:59

Установки по распознаванию для Бровзера я поставил одинаковые на двух машинах. А агент тут скорее всего не причем. Так как этот тест запускали два дня подряд, на двух машинах с 7м Силком и результат был тот-же.
  • 0

#12 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 13 марта 2006 - 19:03

Значит фича, связанная с различием версий. Но это уже совсем другая история
  • 0

#13 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 15 марта 2006 - 06:30

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

А подобное мы уже обсуждали несколькими темами ранее :aggressive:
  • 0

#14 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 15 марта 2006 - 11:24

Мне дали возможность протестировать мой скрипт на машине с Силк Тестом 7.1.
И тут же проблема была решена! :crazy:

Как оказалось - все намного проще.
В свое время для повышения производительности и уменьшения количество элементов в декларации (при записи), я отключил распознование "избыточных" елементов. В том числе и конторолов, которые есть невидимые. Не понятно по каким причинам, но Силк Тест 7.1 считает эти колоники невидимыми, соответсвено не может с ними работать. Я включил в расширение, чтобы агент работал так же с невидимыми колонками и эта проблема была решена.

Также нашел еще одну разницу при использовании 6.5 и 7.1 версий. Так код:

    Control(WindowTag).Click()

На двух версиях работает по разному. При передачи WindowTag ссылки при версии 6.5 происходит щелчок по координатам (0.0). Т.е. используется функция Control().Click(). Навигация по ссылке не происходит.
В версии 7.1 происходит клик на середине ссылки, т.е. вызывается функция HtmlLink().Click(), что вызывает переход по ссылке. Пришлось опять скрипт подкоректировать :wink:
  • 0

#15 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 15 марта 2006 - 14:04

С кликом вообще отдельная история. Для веб-элементов вообще есть метод DoClick(). В 6.5 он определен только для кнопок, но в более поздних версиях он определен и для ссылок (точно не знаю, но скорее всего это есть) и этот метод рекомендуют использовать. Также поведение клика зависит от операционки, а точнее стиля окон. Например для того, чтобы закрыть окно нажатием на крестик нужно выполнить следующий код:
Browser.CloseBox.Click()

Мы закрываем активное окно броузера.
Это сработает для 2000-й винды, а чтобы это работало для ХР (когда выбран ХР стиль отображения окон), то нужно испоьзовать такой код:
Browser.CloseBox.Click(1,5,5)

То есть разница может крыться и здесь.
  • 0

#16 VegaX

VegaX

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

  • Members
  • PipPip
  • 85 сообщений

Отправлено 16 марта 2006 - 14:48

Век живи - век учись. :crazy:
KaNoN спасибо за толковые советы.
  • 0


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

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