Команды‎ > ‎

DS

Отправлено 25 мая 2020 г., 15:00 пользователем Норрин Радд   [ обновлено 25 мая 2020 г., 20:08 ]
Команда iMacros DS (DirectScreen)
Команда DS (DirectScreen) используется, когда остальные команды не справляются! Она имитирует обычный «клик» мыши в окне браузера. Чтобы активировать данную технологию, необходимо во время записи, нажмите на кнопку Click Mode и в появившемся диалоговом окне выберите Use DirectScreen Commands.

Обычно DS в iMacros используется для автоматизации работы с веб-страницами, которые содержат не HTML элементы, а «сложные» технологии, такие как Java applets, Adobe Flash, Adobe Flex, Microsoft Silverlight или ActiveX контроль. Также можно автоматизировать даже самый сложный сайт, основанный на AJAX.

Работает в: iMacros Browser icon Internet Explorer icon

Flash приложение симуляции калькулятора на картинке ниже.
iMacros в работе

Пример сложного (нестандартного) JavaScript — всплывающее диалоговое окно, которое лучше автоматизированной с помощью DirectScreen.

DirectScreen mode

Запись DirectScreen команды:

При работе не с HTML технологиями, такими как Flash, Java или другими, в стандартном режиме, iMacros не может записать действия. Чтобы записать макрос на Flash или Java applet, вы должны активировать технологию DirectScreen, для этого необходимо:

  1. Нажмите кнопку Click Mode
    Команда iMacros DS
  2. В открывшемся окне выберите Use Direct Screen Commands …
  3. Теперь можете записывать необходимые действия

iMacros записывает действия клавиатуры и мыши, записывается много DS и WAIT команд (в зависимости от сложности выполняемых действий). Далее объясняется, почему.

Как определить координаты?

Есть несколько способов определения координат для команды DirectScreen:

1. Абсолютное значение (жесткая привязка к осям):

DS CMD=MOVETO X=455 Y=224

2. Центр HTML элемента. Элемент берется с предыдущей команды TAG. Свойство особенно полезно для использования с AJAX элементами.

DS CMD=MOVETO X={{!TAGX}} Y={{!TAGY}}

3. Центр изображения, определяется по предыдущей команде IMAGESEARCH. Изображение может быть любым, нет ограничения по встроенными HTML изображениям.

DS CMD=MOVETO X={{!IMAGEX}} Y={{!IMAGEY}}

Почему записалось много WAIT команд?

Настройки по умолчанию:

DirectScreen iMacros
Если вы используете настройки по умолчанию, iMacros записывает действия на стандартной скорости, то есть записываются не только нажатия, но и как долго вы ждете между действиями (например, «выбор элемента», «нажатие левой кнопки мыши», «отпускание левой кнопки мыши «, и т. д.). Эти временные интервалы записываются при помощи команды WAIT, которая записывается iMacros автоматически. Таким образом, applet (втроенный скрипт или приложение) имеют достаточно времени, чтобы среагировать на ваши действия.

Если вы заметили, что applet срабатывает быстрее, вы можете попробовать сократить время ожидания путем редактирования макроса. Но обратите внимание, что applet обычно требуется некоторое время, чтобы обновиться. Как альтернатива WAIT можно использовать команду IMAGESEARCH, которая сканирует экран браузера до того, пока не появится указанное изображение (например, изображение кнопки или текст).

Ввод текста:

Когда используется режим записи команд iMacros DS, DS также записывает ввод текста с помощью команды «DS CMD=KEY». Вы можете использовать команду {BACKSPACE}, чтобы перезаписать существующий текст. Вот пример:

VERSION BUILD=6000510     
TAB T=1     
TAB CLOSEALLOTHERS     
URL GOTO=http://imacroshelp.ru/     
SIZE X=846 Y=612    
DS CMD=MOVETO X=244 Y=123   
WAIT SECONDS=0.01    
DS CMD=LDOWN X=271 Y=79   
WAIT SECONDS=0.01     
DS CMD=LUP X=271 Y=79   
WAIT SECONDS=0.01     
DS CMD=KEY X=0 Y=0 CONTENT={BACKSPACE}мой<SP>текст

Синтаксис:

DS CMD=команда X=координата Y=координата [CONTENT=некоторый_текст]

Параметры:

  • CMD
    Выполняемая команда/действие
    • Команды:
      1. CLICK
      Ведет себя как обычный «клик». Технически это сочетание команд MOVE, LDOWN, LUP и KEY.
      2. LDBLCLK
      Имитирует двойной щелчок левой кнопкой мыши. При записи с включенной опцией Record all DirectScreen commands, гарантируется правильная последовательность команд при воспроизведении. При использовании Record only mouse clicks LDBLCLK не записывается, но вы можете вручную добавить следующую последовательность команд которая имитирует двойной щелчок: LDOWN, LUP, LDBLCLK, LUP.
      3. LDOWN
      Имитирует нажатие левой кнопки мыши (нажатие и удержание).
      4. LUP
      Отпускание нажатой левой кнопки мыши (логическое продолжение команды LDOWN).
      5. MOVETO
      Перемещение указателя (кнопка нажата)
      6. MDOWN
      Имитация нажатия средней кнопки мыши (нажатие и удержание).
      7. MUP
      Отпускание нажатой средней кнопки мыши (логическое продолжение команды MDOWN).
      8. MDBLCLK
      Двойной щелчок средней кнопкой.
      9. RDOWN
      Имитация нажатия правой кнопки мыши (нажатие и удержание).
      10. RUP
      Отпускание правой кнопки.
      11. RDBLCLK
      Двойной щелчок правой кнопки.
      12. SCREENSHOT (начиная с iMacros v7!)
      Создание скриншота. Эта команда полезна для снятия скриншотов апплетов, когда нормальная функция создания скриншот не работает. Путь для сохранения скриншотов задается в атрибуте, т.е.
      DS CMD=SCREENSHOT X=380 Y=220 CONTENT=d:\data\screen1.bmp

      Координаты X/Y могут быть где угодно, но должны быть внутри области, в которой нужно сделать скриншот. Так что, если вам нужен скриншот страницы с Java-приложением, координаты должны быть где-то внутри этого приложения, в противном случае эта область останется черной. Несколько скриншотов могут быть объединены в один с помощью команды SCREENSHOTINCLUDE.

    • Действия:
      Ввод текста, нажатие клавиш на клавиатуре. Укажите текст или ключи, чтобы воспользоваться параметром CONTENT. Специальные ключи для команды KEY:
      1. {BACKSPACE}
      Удаляет один символ. Используйте повтор команды {BACKSPACE}, если надо удалить несколько символов или CONTENT=#ERASEALL#, чтобы очистить все поле.
      2. {ENTER}
      Нажатие клавиши Enter.
      Примечание: клавиши-модификаторы {SHIFT}, {CTRL} и {ALT} в настоящее время не поддерживается, а также ни {TAB}, ни {ESC}, ни другие, не упомянутые здесь.
  • CONTENT
    Определяет содержание для отправки выбранного элемента. Укажите CONTENT=#ERASEALL#, чтобы очистить все поле.
    Пример:
    DS CMD=CLICK X=411 Y=434 CONTENT=#ERASEALL#
    DS CMD=KEY X=411 Y=434 CONTENT=#ERASEALL#

Comments