Woland_D
Новичок
- Сообщения
- 18
- Репутация
- 2
Вечер добрый.
Готового решения не прошу, пожалуйста - пните в нужном направлении.
Была поставлена задача создать группу на сайте http://vk.com/ и разместить там сотню-другую фотографий.
Группу создал руками, авторизированный вход на сайт, переход в группу, потом в раздел "Добавление фотографий" - проблем не вызвали. От использования флеш-загрузчика отказался.
Кнопку "Выбрать файл" - программно с помощью скрипта нажал, вторым скриптом (потому что первый скрипт "зависает", пока всплывающее окно не закроется) - заполняю текстовое поле и нажимаю кнопку "Окрыть" во всплывающем окне.
И далее, чудеса - на сервер файл не заливается. Путём экспериментов установил, что проблема в программном нажатии на кнопку "Выбрать файл". Код скрипта ниже...
Скрипт 1
Второй скрипт, вставляющий имя файла и нажимающий кнопку.
Подскажите, в чём загвоздка в каком направлении смотреть...
P.S.: способ решения путём использования MouseClick - нашёл, но хотелось бы обойтись без кликов по координатам.
Готового решения не прошу, пожалуйста - пните в нужном направлении.
Была поставлена задача создать группу на сайте http://vk.com/ и разместить там сотню-другую фотографий.
Группу создал руками, авторизированный вход на сайт, переход в группу, потом в раздел "Добавление фотографий" - проблем не вызвали. От использования флеш-загрузчика отказался.
Кнопку "Выбрать файл" - программно с помощью скрипта нажал, вторым скриптом (потому что первый скрипт "зависает", пока всплывающее окно не закроется) - заполняю текстовое поле и нажимаю кнопку "Окрыть" во всплывающем окне.
И далее, чудеса - на сервер файл не заливается. Путём экспериментов установил, что проблема в программном нажатии на кнопку "Выбрать файл". Код скрипта ниже...
Скрипт 1
Код:
#include <IE.au3>
$login_val = InputBox("Ввод учётных данных", 'Введите логин', 'user_name')
$pass_val = InputBox("Ввод учётных данных", 'Введите пароль', 'my_pass')
$url_group = InputBox("Ввод группы", 'Введите адресс группы', 'http://vk.com/club37880264')
$oIE = _IECreate('http://vk.com/')
$login = _IEGetObjByName($oIE, 'email')
_IEFormElementSetValue($login, $login_val)
$pass = _IEGetObjByName($oIE, 'pass')
_IEFormElementSetValue($pass, $pass_val)
$button = _IEGetObjById($oIE, 'quick_login_button')
_IEAction($button, 'click')
Sleep(5000)
_IENavigate($oIE, $url_group)
InetGet('http://u-news.org.ua/uploads/posts/2012-04/1334224069_1.jpg', 'pt_13.jpg')
_IELinkClickByText($oIE, 'Добавить')
Sleep(5000)
$foto_button = _IEGetObjByName($oIE, 'photo')
_IEAction($foto_button, 'click')
MsgBox(0, 'Окно', 'Ждёмсъъъ')
Второй скрипт, вставляющий имя файла и нажимающий кнопку.
Код:
While 1
Do
Sleep(500)
Until WinExists("Выбор файла для выгрузки")
WinActivate("Выбор файла для выгрузки")
ControlSetText("Выбор файла для выгрузки", "", "[CLASS:Edit; INSTANCE:1]", 'pt_13.jpg')
ControlClick("Выбор файла для выгрузки", "", "[CLASS:Button; INSTANCE:1]")
;Ждем когда окно закроется
Do
Sleep(500)
Until Not(WinExists("Сообщение с веб-страницы"))
WEnd
Подскажите, в чём загвоздка в каком направлении смотреть...
P.S.: способ решения путём использования MouseClick - нашёл, но хотелось бы обойтись без кликов по координатам.