Добрый день. Занимаюсь небольшими работами по автоматизации задач в организации. На vba написан макрос, который осуществляет поиск лиц в бд. Попросили сделать кнопку "переход в пенсионное дело". Сама работа у бухов осуществляется через веб-приложение. Все параметры передаются методом POST, поэтому определился для себя, что нужно эмулировать работу через функцию WINAPI SendInput (на vba это SendKeys). Я представляю себе процесс так — выполняется некоторое действие, напримет клик мыши на поле ввода, небольшая задержка, ввод данных(либо вставка из буфера), нажание enter, далее ожидание ответа от сервера и снова уже другой набор действие. Ожидание ответа от сервета я решил основывать на анализе изображения окна(читаю цвет точки через GetPixel). Но что-то постоянно не ладится, хотя промежутки после ввода уже беру по 500мс и задержку в цикле анализа изображения окна 1000мс, но все равно наблюдаются баги :
1. Бывает в поле имя пользователя вводится и пароль тоже, либо имя пользователя пропускается и вводится только пароль.
2. Internet Explorer может просто зависнуть и перестать отрисовывать изображение, причем он продолжается нормально работать после закрытия excel через диспетчер задач.
Есть ли какое-то распространенное решение задачи, или я слишком много хочу и лутше вообще за это не браться, сказав, что это сделать невозможно.
P.S. Пишу в форум по С++, потому что обычно пишу на нем.
G>Добрый день. Занимаюсь небольшими работами по автоматизации задач в организации. На vba написан макрос, который осуществляет поиск лиц в бд. Попросили сделать кнопку "переход в пенсионное дело". Сама работа у бухов осуществляется через веб-приложение. Все параметры передаются методом POST, поэтому определился для себя, что нужно эмулировать работу через функцию WINAPI SendInput (на vba это SendKeys). Я представляю себе процесс так — выполняется некоторое действие, напримет клик мыши на поле ввода, небольшая задержка, ввод данных(либо вставка из буфера), нажание enter, далее ожидание ответа от сервера и снова уже другой набор действие. Ожидание ответа от сервета я решил основывать на анализе изображения окна(читаю цвет точки через GetPixel). Но что-то постоянно не ладится, хотя промежутки после ввода уже беру по 500мс и задержку в цикле анализа изображения окна 1000мс, но все равно наблюдаются баги : G>1. Бывает в поле имя пользователя вводится и пароль тоже, либо имя пользователя пропускается и вводится только пароль. G>2. Internet Explorer может просто зависнуть и перестать отрисовывать изображение, причем он продолжается нормально работать после закрытия excel через диспетчер задач.
G>Есть ли какое-то распространенное решение задачи, или я слишком много хочу и лутше вообще за это не браться, сказав, что это сделать невозможно.
G>P.S. Пишу в форум по С++, потому что обычно пишу на нем.
А нафига вот такая "автоматизация"? Если для тяп-ляп тестирования, то можно . А если для пользовательского интерфейса — это же глюкодром/говнокод на веки веков. Можно сказать что можно на коленке налабать за 5 минут — но поддержка такого кода будет стоить over 1000000 — ибо сплошная эвристика, типа задержек (месячных) которые вы описали выше.
Если делать для UI — то по нормальному — добавить новую кнопку в UI — послать соответствующий запрос на сервер и корректно обработать запрос.
Здравствуйте, vpchelko, Вы писали:
V>А нафига вот такая "автоматизация"? Если для тяп-ляп тестирования, то можно . А если для пользовательского интерфейса — это же глюкодром/говнокод на веки веков. Можно сказать что можно на коленке налабать за 5 минут — но поддержка такого кода будет стоить over 1000000 — ибо сплошная эвристика, типа задержек (месячных) которые вы описали выше.
На коленке не надо, конечно — есть готовые тулы, типа того же Selenium, упомянутого выше. Кривизны тут никакой: есть веб-форма, есть код для её авто-заполнения. Поменялась форма — надо менять и код автозаполнения, это неизбежно. Насчёт задержек, кстати, тоже зря ёрничаете — попробуйте "автоматизировать" веб-формы гугла/яндекса/etc — будете сильно удивлены прозорливостью анти-бот механизмов, когда человеку стабильно говорят "200 OK", а скрипту с теми же действиями вываливает пачку "четырёхсотых".
V>Если делать для UI — то по нормальному — добавить новую кнопку в UI — послать соответствующий запрос на сервер и корректно обработать запрос.
В уже готовом веб-приложении? Особенно если сырцов нет и/или фиксов не задеплоить?