Что нового

Пример выбора и загрузки файла через IE

alex33

Скриптер
Сообщения
1,457
Репутация
186
Вот пример того, как можно нажать на кнопку выбора файлов, дождаться нужного окна, вписать путь и имя файла и нажать ОК / Открыть.
Пример для rghost:
Код:
#include <IE.au3>
Global $oIE = _IECreate("http://rghost.ru/")
Global $iTimer=TimerInit()
$oIE.navigate('javascript:document.getElementById("choose").click();void(0);',0)
ConsoleWrite("===time: "&TimerDiff($iTimer)&"==="&@CRLF)
;Beep(900, 1000)
Global $sFilePath=@ScriptFullPath
Global $hwnd=WinWait("Выбор выкладываемого файла","",5)
If Not $hwnd Then Exit 2
ControlSetText($hwnd,"","Edit1",$sFilePath)
Sleep(3000); задержка, чтобы было видно
ControlClick($hwnd,"","Button1")

Код кнопки выбора файла:
Код:
<input id="choose" name="file" size="50" type="file" />

P.S. У меня этот код работает.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Только в русской локализации будет работать.


Добавлено:
Сообщение автоматически объединено:

Если два браузера откроют такое же окно, то тоже не сработает.
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
inververs сказал(а):
Только в русской локализации будет работать.
Ну это да... Просто у этого окна есть ещё класс #32770, но он не уникальный (может встретиться где-нибудь ещё), по этому я и сделал поиск по заголовку title.
Можно как вариант написать примерно так:
Код:
WinWait("[REGEXPTITLE:(Выбор выкладываемого файла|Select file); CLASS:#32770]", "", 5)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
alex33
Это не полезняшка это частный случай!
Ели вы хотите сделать полезняшку, то унифицируйте свой код.

alex33 [?]
нажать на кнопку выбора файлов
Выбор файла

P.S. Пользуйтесь поиском!
 

kristow13

Новичок
Сообщения
76
Репутация
0
Подскажите а как обратится к этой же странице, тому же элементу, но по имени?
У меня на странице input type="file" name="file" не получается по вашему методу вызвать...
Код:
#include <IE.au3>
Global $oIE = _IECreate("http://rghost.ru/")
Global $iTimer=TimerInit()
$oIE.navigate('javascript:document.getElementByName("file").click();void(0);',0)
ConsoleWrite("===time: "&TimerDiff($iTimer)&"==="&@CRLF)
;Beep(900, 1000)
Global $sFilePath=@ScriptFullPath
Global $hwnd=WinWait("Выбор выкладываемого файла","",5)
If Not $hwnd Then Exit 2
ControlSetText($hwnd,"","Edit1",$sFilePath)
Sleep(3000); задержка, чтобы было видно
ControlClick($hwnd,"","Button1")

Этот код не работает
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
$oIE.navigate('javascript:document.getElementsByName("file").item(0).click();void(0);',0)
 
Верх