DS

Команда iMacros DS (DirectScreen)

Команда DS (DirectScreen) используется, когда остальные команды не справляются. Она имитирует обычный «клик» мыши в окне браузера. Чтобы активировать данную технологию, необходимо во время записи, нажмите на кнопку Click Mode и в появившемся диалоговом окне выберите Use DirectScreen Commands.

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

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

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

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

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

    1. Нажмите кнопку Click Mode

    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 команд?

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

Если вы используете настройки по умолчанию, 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://imacros.org/

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#