Автоматизация действий из браузера в виде кода для 1С/JS

Заказчик
[no-member:pro]Максим[/no-member:pro]Максим
Параметры проекта
Вариант сотрудничестваОдноразовый проект
РазделРазработка для WEB
Предоплатабез предоплат
Способы оплатыЭлектронные деньги
Приём заявокзавершён
Описание проекта
Есть сайт на Java + Jquery 1.7.1 судя по wappalyzer. Нужно автоматизировать два алгоритма действий и описать их в скрипте с минимальным временем выполнения. Скрипт неважно на чём будет написан, главное, чтобы он мог вызываться/выполняться из 1С, то есть 1С-ка отдаёт данные на скрипт, а скрипт отдаёт нужную информацию.
От вас интересно услышать сроки и сумму по обоим алгоритмам.
Первый алгоритм такой:
1. Открытие сайта.
2. Ввод логина/пароля(инпуты не в форме, с id).
3. Нажатие на img(он без id, name, class, есть событие по клику, то есть запуск скрипта логина). Проходит авторизация, перебрасывает на начальную страницу личного кабинета.
4. Необходимо нажать на пункт меню, которое находится в frame. У кнопки есть id и событие на клике, которое запускает скрипт. Подгружается подменю в тот же frame.
5. Нужно нажать на пункт подменю(всего 4 пункта в подменю, у всех общий класс, по структуре так div > a > span > font, на span нужно нажать и так же у него событие onclick). Скрипт в событии ссылается на страницу на поддомене другого сайта
6. После прогрузки открывается 6 всплывающих окон, которые нужно блокировать/закрыть.
7. Дальше надо нажать на пункт меню, который находится в html > frameset > frame[name="****"] > html > frameset#**** > frame[name="******"(не повторяется)] > куча таблиц. У самого пункта меню структура такая ... > td > table > tbody > tr > td.h > div[id="*****"]. Вот на td.h нужно нажать, там событие onclick, которое вызывает скрипт.
8. Прогружается еще один frame[name="****"] внутри framesetа#****, в нём нужно нажать на a#*******. У ссылки есть событие по кнопке и ссылка на скрипт, чтобы показал страницу.
9. Опять прогружается frameset#***** > frame[name="****"] > iframe[name="***"], в нём форма поиска, в форме нам нужны два инпута с уникальными именами. Нужно разбить(последние 6 символов во второй инпут, остальное в первый) и ввести строку в эти инпуты, которая даётся из 1С.
10. Нажать на инпут с классом, типом button и name(возможно не уникальное). У формы стоит onsubmit="return(false)", но есть action. У кнопки отправки код на клике(который отправляет и получает данные, насколько я понимаю).
11. Ниже формы подгружается информация в таблицу в iframe[name="****"], в нём таблица, где много строчек, нужно даблкликнуть на нужную по атрибуту с уникальным значением(информация появляется всегда в первой строке). На строчке есть ondblclick="parent.openWin('СТРОКА_ИЗ_1С ')".
12. После дабл клика открывается всплывающее окно, на другом сайте, точнее поддомене другого домена с такой структурой html > frameset#*** > frameset#*** > frameset#*** > frame[name="***"] > iframe[name="***"] > form > iframe[name="***"] > table > input. Из этого инпута нужно получить значение и вернуть его, то есть, чтобы 1С их получила.
Id и имена уникальные, но по идее в некоторых местах придется вытаскивать по порядковому номеру в дереве. Сайт по идее не должен меняться, но это не надежно. По идее можно вытащить по тексту внутри span/div, перейти на родителя и кликнуть. В некоторых местах могут подгружаться скрипты или фреймы с другого сайта или к скриптам на другом сайте может быть обращение и тут всплывают вопросы безопасности.
Второй алгоритм:
1-5 пункты повторяются.
6. Нужно кликнуть на пункт подменю в появившемся меню в другом frame. У пункта нет имени, класса, id, по идее можно по href. Пункт идёт тегом с определленным href и onclick="window.open('ССЫЛКА_НА_ДРУГОЙ_ДОМЕН')".
7. Открывается вкладка, через несколько секунд перебрасывает на третий домен(не тот, на котором стоял href) с параметрами сессии(вида https://***********/userMain.do;jsessionid=*****?lo cale=RUS).
8. Тут необходимо ввести полученные данные из 1С в input#***** и кликнуть соседний img#****.
9. Откроется модальное окно в котором нужно нажать на input#*****. Окно закроется и на страницу подгрузится iframe.
10. Вот с этого этапа нужно отдать управление пользователю в 1С. Он выберет нужное в меню, подгрузится нужная информация в iframe, там будет такой вид: слева canvas с схемой и ссылками на нем, справа таблица с чекбоксами и тремя текстовыми полями(ну и поле с нумерацией, но оно нам не нужно). При клике на ссылки на canvas'e чекбоксы справа активируются/отключаются.
11. Необходимо собрать те строки, у которых чекбокс активен и отдать в 1С, например, в формате JSON. Только это надо сделать по нажатию кнопки в 1С. По идее просто написать скрипт, который 1С будет выполнять по нажатию кнопки(Кнопку сделает наш 1С-программист).
От вас интересно услышать сроки и сумму по обоим алгоритмам.
Первый алгоритм такой:
1. Открытие сайта.
2. Ввод логина/пароля(инпуты не в форме, с id).
3. Нажатие на img(он без id, name, class, есть событие по клику, то есть запуск скрипта логина). Проходит авторизация, перебрасывает на начальную страницу личного кабинета.
4. Необходимо нажать на пункт меню, которое находится в frame. У кнопки есть id и событие на клике, которое запускает скрипт. Подгружается подменю в тот же frame.
5. Нужно нажать на пункт подменю(всего 4 пункта в подменю, у всех общий класс, по структуре так div > a > span > font, на span нужно нажать и так же у него событие onclick). Скрипт в событии ссылается на страницу на поддомене другого сайта
6. После прогрузки открывается 6 всплывающих окон, которые нужно блокировать/закрыть.
7. Дальше надо нажать на пункт меню, который находится в html > frameset > frame[name="****"] > html > frameset#**** > frame[name="******"(не повторяется)] > куча таблиц. У самого пункта меню структура такая ... > td > table > tbody > tr > td.h > div[id="*****"]. Вот на td.h нужно нажать, там событие onclick, которое вызывает скрипт.
8. Прогружается еще один frame[name="****"] внутри framesetа#****, в нём нужно нажать на a#*******. У ссылки есть событие по кнопке и ссылка на скрипт, чтобы показал страницу.
9. Опять прогружается frameset#***** > frame[name="****"] > iframe[name="***"], в нём форма поиска, в форме нам нужны два инпута с уникальными именами. Нужно разбить(последние 6 символов во второй инпут, остальное в первый) и ввести строку в эти инпуты, которая даётся из 1С.
10. Нажать на инпут с классом, типом button и name(возможно не уникальное). У формы стоит onsubmit="return(false)", но есть action. У кнопки отправки код на клике(который отправляет и получает данные, насколько я понимаю).
11. Ниже формы подгружается информация в таблицу в iframe[name="****"], в нём таблица, где много строчек, нужно даблкликнуть на нужную по атрибуту с уникальным значением(информация появляется всегда в первой строке). На строчке есть ondblclick="parent.openWin('СТРОКА_ИЗ_1С ')".
12. После дабл клика открывается всплывающее окно, на другом сайте, точнее поддомене другого домена с такой структурой html > frameset#*** > frameset#*** > frameset#*** > frame[name="***"] > iframe[name="***"] > form > iframe[name="***"] > table > input. Из этого инпута нужно получить значение и вернуть его, то есть, чтобы 1С их получила.
Id и имена уникальные, но по идее в некоторых местах придется вытаскивать по порядковому номеру в дереве. Сайт по идее не должен меняться, но это не надежно. По идее можно вытащить по тексту внутри span/div, перейти на родителя и кликнуть. В некоторых местах могут подгружаться скрипты или фреймы с другого сайта или к скриптам на другом сайте может быть обращение и тут всплывают вопросы безопасности.
Второй алгоритм:
1-5 пункты повторяются.
6. Нужно кликнуть на пункт подменю в появившемся меню в другом frame. У пункта нет имени, класса, id, по идее можно по href. Пункт идёт тегом с определленным href и onclick="window.open('ССЫЛКА_НА_ДРУГОЙ_ДОМЕН')".
7. Открывается вкладка, через несколько секунд перебрасывает на третий домен(не тот, на котором стоял href) с параметрами сессии(вида https://***********/userMain.do;jsessionid=*****?lo cale=RUS).
8. Тут необходимо ввести полученные данные из 1С в input#***** и кликнуть соседний img#****.
9. Откроется модальное окно в котором нужно нажать на input#*****. Окно закроется и на страницу подгрузится iframe.
10. Вот с этого этапа нужно отдать управление пользователю в 1С. Он выберет нужное в меню, подгрузится нужная информация в iframe, там будет такой вид: слева canvas с схемой и ссылками на нем, справа таблица с чекбоксами и тремя текстовыми полями(ну и поле с нумерацией, но оно нам не нужно). При клике на ссылки на canvas'e чекбоксы справа активируются/отключаются.
11. Необходимо собрать те строки, у которых чекбокс активен и отдать в 1С, например, в формате JSON. Только это надо сделать по нажатию кнопки в 1С. По идее просто написать скрипт, который 1С будет выполнять по нажатию кнопки(Кнопку сделает наш 1С-программист).