Распознование окон
#1
Отправлено 13 марта 2006 - 17:28
Кто-нибудь сталкивался с проблемой разности распознования окон в Бровзере при разных версиях Силк-Теста.
У меня возникла такая проблема. У клиента 7 версия, у меня 6.5. Настройки все одинаковые, но у клиента не находит ряд обьектов!!!
Причем, что мне важно, находит таблицу, но без единой колонки!!!
С моей стороны все работает нормально....
У кого-какие идеи, помогите, плиз
#2
Отправлено 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)// Восстанавливаем предыдущее значение
Это конечно изврат, но уже крутиться можно
#3
Отправлено 13 марта 2006 - 17:50
А мог бы ты еще подсказать что значит 0 бордер. Я всегда думал, что нулевой бордер - это таблицы, которые не имеют тагов таблицы и являются отформатированым текстом, который Силк распознает как таблицу.
#4
Отправлено 13 марта 2006 - 17:55
<table border=0> ... </table>То есть, у этой таблицы визуальных бортиков нет. Проблема в том, что СилкТест не всегда видит такие таблицы (иногда это, конечно, можно сделать преимуществом). Но, если Силк где-то распознал таблицу и нашел колонку, то будьте уверены, что это не отформатированный текст, а именно таблица
#5
Отправлено 13 марта 2006 - 18:05
Все-таки интересно, как Силк "мудро" работает с таблицами.
А вообще буду пробовать.
#6
Отправлено 13 марта 2006 - 18:13
Кстати говоря, слово "мудро" можно было и без кавычек написать.Все-таки интересно, как Силк "мудро" работает с таблицами.
Дело в том, что в таблицы помещаются не только сгруппированные по столбцам данные. Те же формы ввода, да и любой другой текст, разбитый на секции, зачастую реализованы в виде таблиц. И если Силк их будет все распознавать, то фрейм получится очень неудобным и громоздким. Так что такая работа Силка с таблицами обусловлена оптимизацией структуры окон.
Поэтому такие настройки, по которым видятся ВСЕ таблицы лучше прибегать исключительно для тех таблиц, которые однозначно должны быть видны. В остальных случаях лучше уровень распознания таблиц держать на уровне 0.5 , так как это оптимальный уровень. Как с этим работать я рассказал. Если надо, то я решение этой проблемы могу описать на примере
#7
Отправлено 13 марта 2006 - 18:27
На уровне 0.5 они распознавались некорректно, много вообще не распознавалось, что затрудняло написание скриптов. Покопавшись по докам, я обнаружил, что оптимальный метод - использовать 0.76 уровень распознавания - его и использую.
Но, вернувшись к проблеме, если Силк не распознал таблицу - ведь он должен распознать обьекты что в ней находятся. Насколько я помню, когда я ставил уровень таблицы 0 - все обьекты были, правда они не были посортированы по таблицам. В моем случае, обьекты что находятся в таблице - вообще перестали существовать в декларации!!! Или это нормально, при таком распознавании таблицы? Заранее благодарен.
#8
Отправлено 13 марта 2006 - 18:38
Думаю, это естественно. Если уровень таблицы 0, то будут распознаваться только те таблицы, у которых border будет ненулевым, а таблицы без border-а не будут видны вообще (считайте, что их нет в принципе). А элементы внутри таблицы в этом случае будут видны по другому пути, отличному от других уровней таблиц. Некоторые элементы (такие как колонки) вообще пропадут бесследно (логично, если нет таблицы, то и нет колонки этой таблицы). Останутся максимум тексты и элементы управления, которые были помещены в таблицу.Насколько я помню, когда я ставил уровень таблицы 0 - все обьекты были, правда они не были посортированы по таблицам. В моем случае, обьекты что находятся в таблице - вообще перестали существовать в декларации!!! Или это нормально, при таком распознавании таблицы?
Хорошо, что есть оптимальный вариант. Мне не так давно тоже пришлось решать такую проблему, но мне пришлось динамически варьировать этот уровень от 0.5 до 1.0, то есть определенный кусок фрейма описан при уровне 0.5, а другой при уровне 1.0 и менять их нужно было прямо в програмном коде, что не очень хорошо, зато и фрейм остался удобным и задачи выполняются как надо.оптимальный метод - использовать 0.76 уровень распознавания
#9
Отправлено 13 марта 2006 - 18:45
А элементы внутри таблицы в этом случае будут видны по другому пути, отличному от других уровней таблиц. Некоторые элементы (такие как колонки) вообще пропадут бесследно (логично, если нет таблицы, то и нет колонки этой таблицы). Останутся максимум тексты и элементы управления, которые были помещены в таблицу.
В том то и дело, что элементы управления - линки и тексты, что были в таблице, перестали существовать ни по этому ни по другому пути... Жаль, что я не имею прямой доступ к клиентской машине - так бы такие вопросы быстрее бы решались.
#10
Отправлено 13 марта 2006 - 18:51
Скорее всего в уровне распознания таблиц и кроется проблема (на клиентской машине этот уровень мог быть другим или какая-то галочка не включена и все - набитые шишки и никакого удовольствия). А линки могут не распознаваться, если вырубились расширения. Агент от долгой работы может уставать и его глючит. То есть как вариант, нужно перестартовывать агента хотя бы перед запуском определенной группы тесткейсов. Но это так, для информации. Если сейчас заработает как надо, то это очень хорошоВ том то и дело, что элементы управления - линки и тексты, что были в таблице, перестали существовать ни по этому ни по другому пути... Жаль, что я не имею прямой доступ к клиентской машине - так бы такие вопросы быстрее бы решались.
#11
Отправлено 13 марта 2006 - 18:59
#12
Отправлено 13 марта 2006 - 19:03
#13
Отправлено 15 марта 2006 - 06:30
А подобное мы уже обсуждали несколькими темами ранее
#14
Отправлено 15 марта 2006 - 11:24
И тут же проблема была решена!
Как оказалось - все намного проще.
В свое время для повышения производительности и уменьшения количество элементов в декларации (при записи), я отключил распознование "избыточных" елементов. В том числе и конторолов, которые есть невидимые. Не понятно по каким причинам, но Силк Тест 7.1 считает эти колоники невидимыми, соответсвено не может с ними работать. Я включил в расширение, чтобы агент работал так же с невидимыми колонками и эта проблема была решена.
Также нашел еще одну разницу при использовании 6.5 и 7.1 версий. Так код:
Control(WindowTag).Click()
На двух версиях работает по разному. При передачи WindowTag ссылки при версии 6.5 происходит щелчок по координатам (0.0). Т.е. используется функция Control().Click(). Навигация по ссылке не происходит.
В версии 7.1 происходит клик на середине ссылки, т.е. вызывается функция HtmlLink().Click(), что вызывает переход по ссылке. Пришлось опять скрипт подкоректировать
#15
Отправлено 15 марта 2006 - 14:04
Browser.CloseBox.Click()
Мы закрываем активное окно броузера.
Это сработает для 2000-й винды, а чтобы это работало для ХР (когда выбран ХР стиль отображения окон), то нужно испоьзовать такой код:
Browser.CloseBox.Click(1,5,5)
То есть разница может крыться и здесь.
#16
Отправлено 16 марта 2006 - 14:48
KaNoN спасибо за толковые советы.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных