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

Фотография

Как 'отвязаться' от координат


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

#1 Angel

Angel

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

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

Отправлено 24 октября 2006 - 15:07

В Скрипте везде все действия типа ListView DblClick, ComboEditBox Click, PSMenu Click и так далее все завязанно на коодинаты ..... если вдруг координаты изменились то робот не тыкает в объект (точнее тыкает по старым координатам). Возможно ли 'отвязаться' от координат ? Пробовал вместо координат ставить пустые кавычки , к желаемуму результату не привело.
  • 0

#2 Tiana

Tiana

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 24 октября 2006 - 16:28

Если указаны координаты, то осуществляется действие (Click, DblClick) по координатам, которые передаются в качестве параметра.
При записи скрипта с помощью Recorder, записываются действие и координаты, в пределах которого действие было выполнено.
Если вы не хотите привязываться к координатам, то кавычки должны быть пустыми. Но в вашем случае, похоже что робот не распознает объект по указанному recMethod$.
Возможно, что recMethod$ неверный, но бывает так, что даже при верном recMethod$ действие не выполняется без координат. Попробуйте с помощью функции SQAFindObject найти объект с тем же recMethod$, который используется для выполнения действия над объектом. Если Result<>0, то recMethod$ указан неверно, в противном случае - для выполнения действия над этим объектом необходимо указать координаты.
  • 0

#3 serega

serega

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

  • Members
  • PipPipPipPip
  • 355 сообщений
  • Город:Москва

Отправлено 25 октября 2006 - 06:30

Возможные решение - использование переменных для указания координат, значения которых получается либо рандомайзным образом, либо прямым указанием, например, через цикл

Вопрос в том, что Вы добиваетесь путем отвязки от координат?
  • 0

#4 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 25 октября 2006 - 07:09

Координаты указывают, где кликать в пределах объекта
Если объект 20x50,
EditBox Click, "Type=EditBox;Name=txtName", "Coords=15,7" работает
EditBox Click, "Type=EditBox;Name=txtName", "Coords=150,70" не работает

Самое простое решение: поменять координаты на "Coords=2,2"
  • 0

#5 Angel

Angel

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

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

Отправлено 25 октября 2006 - 15:11

Суть в следуюшем
Есть файл со скриншотом и с комментариями что есть что (как определил Inspector). Надо нажать на кнопку для раскрытия выпадающего меню.
SQAFindObject данную кнопку находит пример вызова
res=SQAFindObject("Type=ComboBox;ObjectIndex=1") и res = 0 означает что данный объект найден.
строка ComboBox Click, "ObjectIndex=1", "Coords=55,5" - тыкает по нужной мне кнопке.
строка ComboBox Click, "ObjectIndex=1", "" (или вместо последних кавычек поставить "%") тыкает в середину объекта ComboEditBox.
По файлу скриншота должна быть понятна проблема. У кого какие мысли есть по даному поводу ??? Необходимость отязаться от координат в том что при изменении размеров столбца Value? меняются координаты для ComboBox.

Прикрепленные файлы


  • 0

#6 Tiana

Tiana

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 25 октября 2006 - 16:02

Если задача стоит в том, чтобы выбрать какой-либо из пунктов выпадающего списка, то попробуйте сделать следующим образом:
- выполнить команду Click по ячейке "Навигация";
- затем выполнить команду InputKeys "{TAB}%{DOWN}", для перехода на элемент ComboBox и открытия выпадающего списка, соответственно;
- затем осущесвить выбор необходимого пункта из элемента ComboListBox.
  • 0

#7 serega

serega

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

  • Members
  • PipPipPipPip
  • 355 сообщений
  • Город:Москва

Отправлено 26 октября 2006 - 06:20

Необходимость отязаться от координат в том что при изменении размеров столбца Value? меняются координаты для ComboBox.

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


Не пробовали взять текущие размеры Value и от них расчитать координаты?
  • 0

#8 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 26 октября 2006 - 06:53

ComboBox Click, "ObjectIndex=0", "Coords=55,5"
ComboListBox Click, "ObjectIndex=0", "Text="+sText
=
ComboBox Click, "ObjectIndex=0", "Coords=1,1"
ComboListBox Click, "ObjectIndex=0", "Text="+sText
  • 0

#9 Angel

Angel

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

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

Отправлено 26 октября 2006 - 09:58

Если задача стоит в том, чтобы выбрать какой-либо из пунктов выпадающего списка, то попробуйте сделать следующим образом:
- выполнить команду Click по ячейке "Навигация";
- затем выполнить команду InputKeys "{TAB}%{DOWN}", для перехода на элемент ComboBox и открытия выпадающего списка, соответственно;
- затем осущесвить выбор необходимого пункта из элемента ComboListBox.

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

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

#10 Angel

Angel

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

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

Отправлено 26 октября 2006 - 09:59

Необходимость отязаться от координат в том что при изменении размеров столбца Value? меняются координаты для ComboBox.

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


Не пробовали взять текущие размеры Value и от них расчитать координаты?

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

Именно это вчера и реализовал сразу после написания сообщения на этот форум ! ;) Данное решение так-же имеет место быть. Сенькс !
-------------------------------------------------------------------------
Данный кусок кода демонстрирует данное решение


dim x as Integer
dim y as Integer
If ( res=SQAFindObject("Type=ComboBox;ObjectIndex=1") ) = SqaSuccess then

re2 =SQAGetProperty("Type=ComboEditBox;ObjectIndex=1", "Width", x)
re2 =SQAGetProperty("Type=ComboEditBox;ObjectIndex=1", "Height", y)
x = x+9 ' в данном случае 9 - дельта для x , для того чтоб робот попал по центру кнопки
y = y-7 ' Аналогично для y, хотя н статичен и его можно оставить числом, но так как алгоритм получения числа не
' требует много вермени на выполнение можно оставить и так.
' переменная re2 введена для дебага её можно упразднить
ComboBox Click, "ObjectIndex=1", "Coords=" &x &"," &y ' кликает по рассчитанным координатам

else
SQALogMessage sqaFail, "Объект ComboBox не найден !" , ""
  • 0

#11 Angel

Angel

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

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

Отправлено 26 октября 2006 - 10:06

ComboBox Click, "ObjectIndex=0", "Coords=55,5"
ComboListBox Click, "ObjectIndex=0", "Text="+sText
=
ComboBox Click, "ObjectIndex=0", "Coords=1,1"
ComboListBox Click, "ObjectIndex=0", "Text="+sText

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

А можно немножко расписать что тут происходит ???? не совсем понял по скрипту принцип происходящего ...
  • 0

#12 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 26 октября 2006 - 10:34

ComboBox Click, "ObjectIndex=0", "Coords=55,5"
ComboListBox Click, "ObjectIndex=0", "Text="+sText
=
ComboBox Click, "ObjectIndex=0", "Coords=1,1"
ComboListBox Click, "ObjectIndex=0", "Text="+sText

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

А можно немножко расписать что тут происходит ???? не совсем понял по скрипту принцип происходящего ...

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


Кликаем в ComboBox и выбираем значение sText
И это работает в не зависимости, кликаем мы в 55,5 или 1,1
(думаю, что ComboBox никогда не будет меньше 1x1)
  • 0

#13 Angel

Angel

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

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

Отправлено 26 октября 2006 - 10:45

ComboBox Click, "ObjectIndex=0", "Coords=55,5"
ComboListBox Click, "ObjectIndex=0", "Text="+sText
=
ComboBox Click, "ObjectIndex=0", "Coords=1,1"
ComboListBox Click, "ObjectIndex=0", "Text="+sText

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

А можно немножко расписать что тут происходит ???? не совсем понял по скрипту принцип происходящего ...

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


Кликаем в ComboBox и выбираем значение sText
И это работает в не зависимости, кликаем мы в 55,5 или 1,1
(думаю, что ComboBox никогда не будет меньше 1x1)

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

Размеры (координаты) куда кликать, привязаны не к размеру ComboBox'а , а к размерам ComboEdotBox'а. При указании ComboBox Click, "ObjectIndex=0", "Coords=1,1"
тыкает в верхний левый угол CpmboListBox'а. ;)
зы: Может дальнейшее обсуждение перенесем в аську, а на форум потом выложу готовое решение с объяснением ??? Если конечно есть время и желание пообщаться на данную тему !
ICQ:233-487-425
  • 0

#14 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 26 октября 2006 - 11:01

Значит "плохой" ComboBox попался :focus:
(в ситуациях, с которыми сталкивался я, хватило перевести Click на 1,1)
Остается толка согласится с Tiana…
  • 0

#15 Angel

Angel

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

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

Отправлено 26 октября 2006 - 11:58

Значит "плохой" ComboBox попался  :focus:
(в ситуациях, с которыми сталкивался я, хватило перевести Click на 1,1)
Остается толка согласится с Tiana…

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

понятно , я так и подумал.

посмотри еще мой ответ serega , вот еще один вариант решения !
  • 0

#16 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 26 октября 2006 - 12:22

Кстати, ComboBox type "value only from list" или значение моно ввести "с руки"?
  • 0

#17 Tiana

Tiana

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Girnyk S. Tatyana
  • Город:Украина, Харьков

Отправлено 26 октября 2006 - 12:28

Кстати, ComboBox type "value only from list" или значение моно ввести "с руки"?

Там на скриншоте виден курсор, поэтому после клика на ComboBox не появляется выпадающий список, а появляется курсор для ввода значения.
  • 0

#18 berzinc

berzinc

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

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 26 октября 2006 - 12:59

Если так, то в чем проблема? :focus:
С InputKeys вводим, что надо и дело сделано.
А чтобы проверить, било ли такое значение в ComboBox , есть Verification Point.
  • 0

#19 Angel

Angel

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

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

Отправлено 26 октября 2006 - 14:19

Дык суть в том что я хотел выбирать именно мышкой ! Задача решена, результатом удовлетворен. Всем спасибо за советы.
  • 0

#20 Stren

Stren

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

  • Members
  • PipPip
  • 129 сообщений
  • ФИО:Буланов Алексей Александрович
  • Город:Москва

Отправлено 27 октября 2006 - 15:19

EditBox Click, "Type=EditBox;Name=txtName", "Coords=%"
  • 0
С уважением Алексей ака Stren, подробнее в профайле.


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

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