Подтвердить что ты не робот

Каков наилучший способ создания веб-скриптов/веб-макросов?

Я пытаюсь оптимизировать некоторые из наших задач на моем месте работы, и кажется, что довольно много времени разработчиков уделяется выполнению полумеханических задач в Интернете (в частности, редактирование интернет-магазинов, в которых используется веб-сайт основанные на интерфейсах). Таким образом, я изучал некоторые решения, которые позволят выполнять эти задачи с помощью сценариев, поскольку я полагаю, что это может сэкономить нам немного времени на каждую задачу. Поэтому, прежде чем я действительно начал копаться в любом из них, мне было просто интересно, есть ли у сообщества Qaru какие-либо рекомендации относительно того, какое решение для веб-сценариев/макросов было бы лучшим.

Вот требования:

  • Должна иметь возможность взаимодействовать с веб-формами (а не просто загружать страницу и очищать файл - script должен редактировать элементы управления в веб-форме, а затем отправлять эту форму)
  • Формы, которые мы должны редактировать, являются безопасными формами, поэтому решение для скриптинга должно быть в состоянии справиться с этим (т.е. для нас бесполезно иметь невероятно мощное решение для сценариев, если человеку придется сидеть и смотреть его и вручную переустанавливать каждые несколько минут)
  • Было бы действительно, действительно, действительно предпочтительнее, если бы он мог читать локальные файлы и выполнять некоторые основные замены/манипуляции с ними (например, было бы неплохо иметь список переменных или некоторый HTML-код в текстовом файле, а затем script замените токен "STORENAME" на указанное имя магазина, прежде чем он вставляет код в форму)

Вот сценарии, которые находятся на моем радаре до сих пор (я на самом деле не смотрел ни на одну из них, хотя я играл с Chickenfoot):

  • Chickenfoot
  • iMacros для Firefox
  • Libwww жемчужно
  • libwww для unix и C (при поиске libwww для perl я наткнулся на это, чего я не знал до сих пор)
  • более "общее" решение макросов, такое как AutoHotKey

Кто-нибудь здесь, в Stack Overflow, пробовал любое из этих решений? Если да, то что вам понравилось или не понравилось в них? Может ли кто-нибудь порекомендовать тот, которого нет в списке? (Это далеко не единственный или исчерпывающий список). Мне бы очень хотелось автоматизировать многие из наших механических процессов, и я надеюсь, что сообщество Qaru может помочь нам, чтобы мы могли надеяться избежать этой значительной части работы:).

изменить: Re: платформа. У нас в основном работают терминалы WindowsXP, но 1) у нас есть несколько тестовых компьютеров Mac, поэтому OS X является жизнеспособным вариантом, и 2) если это будет означает автоматизировать многие из этих задач, я буду строить Linux-бокс, если это необходимо. Таким образом, платформа практически не является проблемой.

4b9b3361

Ответ 1

Другим вариантом является использование AutoIT + Firefox + mozrepl + FF.au3. Это мощно, так как AutoIT работает за пределами браузера (это фантастический инструмент автоматизации сам по себе), поэтому вы можете работать через представление нескольких форм браузера без потери контекста. Затем FF.au3 script позволяет вам просто управлять Firefox с помощью AutoIT3.

Ответ 2

Я большой поклонник Selenium

http://www.seleniumhq.com

предназначенный для обработки автоматизированного тестирования браузера, хотя с поддержкой скриптов (на нескольких языках) вы можете создавать шаблоны макросов, которые заполнят формы и на основе переменных

также: кто-нибудь знает хороший макрос, который работает с Flash?? Не похоже, что javascript может пересечь эту строку

Ответ 3

iMacros для Firefox бесплатно, и это все, что вам нужно! Он автоматизирует любую активность браузера и просто работает! Он также может читать/писать внешние формы заполнения данных и многое другое. Я большой поклонник этого дополнения Firefox!

Ответ 4

Мне очень нравится фреймворк watir (работает на рубине) - программируемый, простой, использует IE для автоматизации Интернета (и поэтому вы получаете истинное поведение браузера). Конечно, это только Windows - вы не указали, что вы используете.

Мы использовали watir для автоматизации наших тестов webapp, и мы очень довольны.

Ответ 6

Несколько предложений:

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

Ответ 7

Я на самом деле большой поклонник Chickenfoot, который недавно начал использовать много, чтобы предоставить возможности сценариев для Zotero, еще одного расширения Firefox.

Ответ 8

Использование:

Firefox + iMacros для извлечения:
Перейдите на страницу, которая вам нравится (например, yahoo.com), включите iMacro в фокус, нажмите запись и найдите некоторый текст. Когда отображается первая страница, сохраните страницу в файле.

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

Затем вы очищаете код html, который вы получили, используя это:

# this is php, do the proper thing in the language of your choice
# one or more spaces is equal to one space, remove tab, return  ...etc.
return ereg_replace(' +', ' ', trim(preg_replace("/(\r\n|\r|\t|\n|\'|\")/s", '', $string)


Теперь у вас есть чистая html-страница с одной строкой, длинная.
Теперь вы можете вырезать и нарезать, как вам угодно, с помощью regEx.

Что нужно знать:
Вы можете запустить макрос в firefox через cronjob (commandline), если вам нужна полная автоматизация.

Ответ 9

Если вы используете libwww-perl, то не останавливайтесь на этом. Используйте WWW:: Mechanize, который представляет собой оболочку вокруг LWP, которая требует взаимодействия с браузером. Недостаток: он не обрабатывает JavaScript (пока).

WWW:: Механизировать домашнюю страницу

Ответ 10

мы используем инструмент iMacros, о котором вы говорили с успехом:

Firefox + iMacros

Обратите внимание, что он также поставляется как бесплатный IE addon! Самое замечательное в том, что точно такие же макросы работают в обоих браузерах. IMHO очень полезен для быстрого и легкого веб-тестирования и общей автоматизации веб-сайтов.

Тим

Ответ 11

Мое впечатление от IMacros - это вы нужно платить, чтобы разблокировать множество положительных героев, поэтому я пошел с Chickenfoot. К сожалению, список рассылки Chickenfoot очень тихий в последнее время, поэтому не уверен в своем будущем...

Ответ 12

WatiN,.net версия Watir. Мне это очень нравится.

Ответ 13

Я использую iMacro/.net для проекта извлечения данных. Мне нравится простота написания сценариев для iMacros, что важно, поскольку приложение может иметь до 60 + сайтов для извлечения данных. Для этого проекта накладные расходы на запуск iMacros стоят сэкономленного времени разработки. Это не идеальное решение, но это один из способов взаимодействия с другими данными веб-сайта, предполагая, что они не обеспечивают надлежащего интерфейса. Оптимальная часть заключается в том, что я создал небольшой кластер серверов скребок iMacros, чтобы помочь распределить нагрузку. Прямо сейчас пользователи могут обращаться к серверам приложений через веб-сайт для запросов adhoc, но в конце концов мне хотелось бы, чтобы он превратился во что-то более потоковое.

Ответ 14

Есть несколько вариантов для python:

  • базовая поддержка сообщения urllib2
  • Mechanize (первоначально, 9 лет назад, портирован с perl, после этого значительно улучшился) и его обертки:

Здесь короткая и четкая запись в блоге (хотя и немного устаревшая), сравнивающая, как одна и та же простая задача может быть выполнена с использованием разных библиотек: http://blog.spritecloud.com/2010/01/posting-forms-with-python/

Обратите внимание, что Clientform также упоминается, что в настоящее время существует часть механизации.

Ответ 15

Вы можете достичь этого, используя функцию плагина iMacro для Firefox и Notepad ++ Macro.

В моем блоге есть учебное пособие:

http://xianlin.wordpress.com/2014/02/05/how-to-use-iopus-imacros-notepad-web/

Вы должны выполнить аналогичную задачу, используя метод, описанный в этом блоге.