Что нового

[Автоматизация] Выгрузка данных из личного кабинета ectostroy по расписанию

alex918

Новичок
Добрый день.
Есть задача:
1.авторизоваться на сайте my ectostroy ru (можно использовать демовход)
2. в личном кабинете my ectostroy ru/cabinet зайти в раздел Датчики - Все. Далее выбрать датчик с предопределенным именем. Например в демокабинете есть датчик - "дым"
3. на странице датчика в окне "Статистика показаний для «дым»" выбрать период - "за сутки", далее нажать внизу окна иконку "сохранить в csv" и сохранить файл в предопределенное место. В названии файла указать название датчика, дату, время.
4. Те же действия пунктов 2,3 выполнить для раздела Управление- Все. На примере "Реле ABC".

программа должна позволять:
1. выполнение программы выгрузки по расписанию. дать возможность настраивать расписание выгрузки для каждого датчика индивидуально
2. дать возможность настраивать выбор периода детализации выгрузки данных(см. п. 3) (в соответствии с личным кабинетом: час, 3 часа, 12 часов, за сутки, за трое суток) для каждого датчика.
3. Программа должна позволять пользователю самостоятельно добавлять датчики в выгрузку, настраивать период детализации выгрузки и настраивать расписание сохранения данных
4. программа должна позволять пользователю настраивать место сохранения и название файла

Программа должна работать на Win Server 2012 R2

p.s.
настройки можно делать и в коде скрипта - редактировать переменные например.

Кто возьмется?
Сроки
Стоимость.
 

ynbIpb

Скриптер
Начал изучать WebDriver. Чисто для тренировки создал скрипт.
Код:
; ----------------------------------------------------------------------------
; AutoIt Version: 3.3.14.5
; Author: ynbIpb
; Script Function: Chrome automation
; Script date: 02.03.2020
; ----------------------------------------------------------------------------
; полезная информация: https://www.autoitscript.com/wiki/WebDriver
; Расширение для определения xPath https://autonomiq.io/chropath/#

#include "includes\wd_core.au3" ; библиотека WebDriver 0.2.0.6
#include "includes\wd_helper.au3"

$sTargetURL = "https://my.ectostroy.ru" ; адрес цели
$sDesiredCapabilities = "" ; перенная для параметров сессии
SetupChrome() ; задаём параметры для Chrome
_WD_Startup() ; запускаем драйвер.
$sSession = _WD_CreateSession($sDesiredCapabilities) ; создаём сессию.
_WD_Window($sSession, "Maximize") ; разворачиваем окно браузера на весь экран
_WD_Navigate($sSession, $sTargetURL) ; открываем необходимый адрес в браузере
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByLinkText, "ДЕМО-ВХОД") ; находим ссылку с текстом
_WD_ElementAction($sSession, $sElement, 'click') ; нажимаем на неё
_WD_LoadWait($sSession, 2000) ; ожидаем загрузки
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//li[6]//a[1]//span[1]") ; находим элемент "Датчики"
_WD_ElementAction($sSession, $sElement, 'click')
_WD_LoadWait($sSession, 500) ; ожидаем загрузки
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//li[@class='active']//li[1]//a[1]") ; находим элемент "Все"
_WD_ElementAction($sSession, $sElement, 'click')
_WD_LoadWait($sSession, 500) ; ожидаем загрузки
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//div[@id='sensor-107617']//i[@class='fa fa-wrench']") ; находим элемент "Дым"
_WD_ElementAction($sSession, $sElement, 'click')
_WD_LoadWait($sSession, 500) ; ожидаем загрузки
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//button[4]") ; находим элемент "За сутки"
_WD_ElementAction($sSession, $sElement, 'click')
_WD_LoadWait($sSession, 500) ; ожидаем загрузки
$sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//a[contains(@class,'btn btn-doc')]") ; находим элемент "Выгрузить в CSV"
_WD_ElementAction($sSession, $sElement, 'click')

Sleep (5000)
_WD_DeleteSession($sSession); удаляем сессию.
_WD_Shutdown() ; завершаем работу драйвера

Func SetupChrome() ; функция настроек для Chrome
_WD_Option("Driver", @ScriptDir & "\chromedriver.exe"); путь к исполняемому файлу драйвера
_WD_Option('Port', 9515) ; задаём порт
_WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"'); дополнительные параметры
$sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true }}}}'; параметры сессии
EndFunc
 
Последнее редактирование:
Верх