101

Re: AHK: Заполнение формы на веб-сайте

Куда и для чего?

102 (изменено: serzh82saratov, 2014-12-13 22:26:27)

Re: AHK: Заполнение формы на веб-сайте

В том, что там был вставлен msgbox в функцию и все из-за этого сильно глючило и не работало.
Не знаю почему.

А Я непонимаю, что значит глючит, там вроде как и глючить остаётся не чему.

для чего?

Как для чего, ты же сказал что первый загруженный фрейм тебе не подходит. Я тебе предложил проверку адреса фрейма, и в ответ ты цитируешь как решение, код срабатывающий на первый загруженный фрейм (такой же как и в # 88).

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

103

Re: AHK: Заполнение формы на веб-сайте

Повторюсь, я не знаю как работает эта функция DocumentComplete(), при скольких загруженных фреймах она срабатывает и как мне может помочь таймер.
Но запусти  эти 2 скрипта - вариант с мессаджбоксом в функции глючит, а с прерыванием цикла работает исправно.

link = http://www.delfi.lv/

ComObjError(false)
oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, "IE_"), loading := true ; Connect IE object & set var "loading" as TRUE
oIE.navigate(link)
while, loading
   Sleep, 10
MsgBox, % oIE.document.documentElement.OuterHtml
return

IE_DocumentComplete() { ; the "IE_" prefix corresponds to the ComObjConnect() function above
   global loading := false ; Break the While-Loop
}
#Persistent
link = http://www.delfi.lv/

ComObjError(false)
oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, "IE_"), loading := true ; Connect IE object & set var "loading" as TRUE
oIE.navigate(link)
return

IE_DocumentComplete() { ; the "IE_" prefix corresponds to the ComObjConnect() function above
   MsgBox, % oIE.document.documentElement.OuterHtml
}

104

Re: AHK: Заполнение формы на веб-сайте

Коды одинаковы по функционалу. У меня 2 код не глючит, и что может глючить? Страница грузится сама по себе, вылезает MsgBox. Что именно у тебя глючит?

И опять вопрос - как 1 код тебе может подходить, если ты же пишешь:

Malcev пишет:

msgbox выскакивает не загрузив страницу

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

105 (изменено: Malcev, 2014-12-14 23:14:01)

Re: AHK: Заполнение формы на веб-сайте

Во втором коде страница начинает грузиться (белый экран в ИЕ) и тутже выскакивает пустой msgbox.
В первом коде msgbox с исходным кодом выскакивает только после загрузки страницы.

106

Re: AHK: Заполнение формы на веб-сайте

В первом коде msgbox с исходным кодом выскакивает только после загрузки страницы.

А у меня ещё до её визуального представления. Не знаю, у меня только это показывает вовремя:


link = http://www.delfi.lv/

oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, eventsclass)
oIE.navigate(link)  
Return

class eventsclass  {  
    DocumentComplete(pDisp, URL)  {   
        if URL = http://www.delfi.lv/
            ToolTip OK
    } 
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

107

Re: AHK: Заполнение формы на веб-сайте

Ещё раз наглядно:

link = http://www.delfi.lv/

oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, eventsclass)
oIE.navigate(link)  
Return

class eventsclass  {  
    DocumentComplete(pDisp, URL)  {   
        Static str, i := 0
            ToolTip % str .= ++i ": " URL "`n", 1 , 1
    } 
}

Твой код срабатывает при загрузке первого фрейма. В моём можно выбрать место.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

108

Re: AHK: Заполнение формы на веб-сайте

Тогда есть вопросы.
Считаем, что код срабатывает верно, когда oIE.document.documentElement.OuterHtml !=""
1) Почему у меня срабатывает верно этот код, хотя там загружается тольео первый фрейм.

link = http://www.delfi.lv/

ComObjError(false)
oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, "IE_"), loading := true ; Connect IE object & set var "loading" as TRUE
oIE.navigate(link)
while, loading
   Sleep, 10
MsgBox, % oIE.document.documentElement.OuterHtml
return

IE_DocumentComplete() { ; the "IE_" prefix corresponds to the ComObjConnect() function above
   global loading := false ; Break the While-Loop
}

Почему неверно срабатывает этот код, хотя в 6 фрейме загружается delfi.lv?

#persistent
link = http://www.delfi.lv/

oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, eventsclass)
oIE.navigate(link)  
Return

class eventsclass  {  
    DocumentComplete(pDisp, URL)  {   
        Static i := 0
        i++
        if i = 6
           msgbox % oIE.document.documentElement.OuterHtml
    } 
}

3) Где про это можно почитать?

 Static str, i := 0
            ToolTip % str .= ++i ": " URL "`n", 1 , 1

109

Re: AHK: Заполнение формы на веб-сайте

#Persistent
link = http://www.delfi.lv/

ComObjError(false)
oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, "IE_"), loading := true ; Connect IE object & set var "loading" as TRUE
oIE.navigate(link)
return

IE_DocumentComplete() { ; the "IE_" prefix corresponds to the ComObjConnect() function above
settimer, ok, -1
}

ok: 
MsgBox, % oIE.document.documentElement.OuterHtml

Вот так работает. А у тебя?
Но опять же непонятно почему. Может функция возвращает не первый фрейм, а последний?

110

Re: AHK: Заполнение формы на веб-сайте

Ещё раз говорю, это тоже самое, идентично, никакой разницы! Ловит первый фрейм.

link = http://www.delfi.lv/
 
oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
ComObjConnect(oIE, "IE_") 
oIE.navigate(link) 
return

IE_DocumentComplete(pDisp, URL) {  
   MsgBox % URL
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

111 (изменено: Malcev, 2014-12-19 20:46:12)

Re: AHK: Заполнение формы на веб-сайте

А можно ли как-то получить oIE.document.documentElement.OuterHtml без загрузки флешбаннеров?

112

Re: AHK: Заполнение формы на веб-сайте

Не корректный вопрос.
Если как было:

А в этом коде функция IE_DocumentComplete срабатывает раньше, чем загрузилась страница.

то там что? Один фрейм?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

113

Re: AHK: Заполнение формы на веб-сайте

Просто я понял, что мой вопрос не связан с определением загрузки страницы.
Визуально я вижу нужную мне информацию, но по нажатию

f11:: msgbox % oIE.document.documentElement.OuterHtml

получаю пустой мессаджбокс.
И только когда подгрузится флешбаннер я по нажатию f11 получаю код.

114

Re: AHK: Заполнение формы на веб-сайте

Так тебе, что нужно? Получить код, или поймать некий момент?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

115

Re: AHK: Заполнение формы на веб-сайте

Получить код.

116

Re: AHK: Заполнение формы на веб-сайте

И только когда подгрузится флешбаннер я по нажатию f11 получаю код.

Ты на наверное хотел сказать, что в нужный момент, как можно скорее, получить код?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

117

Re: AHK: Заполнение формы на веб-сайте

Да. Иными словами получить код, как только я его вижу визуально или раньше.
Не дожидаясь загрузки баннеров.

118

Re: AHK: Заполнение формы на веб-сайте

Хорошо. Но почему ты не приводишь результаты опытов с DocumentComplete? Какие фреймы когда грузятся, то есть - какой код при загрузке какого фрейма доступен?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

119

Re: AHK: Заполнение формы на веб-сайте

А в этом нет смысла, так как во время загрузки страницы, после того как она появилась на экране без ожидания выполнения DocumentComplete я сразу нажимаю f11 и получаю пустой результат.

120

Re: AHK: Заполнение формы на веб-сайте

Ммм... Может проще тебе повторить, как в 107 посте, для взаимопонимания.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

121

Re: AHK: Заполнение формы на веб-сайте

без ожидания выполнения DocumentComplete я сразу нажимаю f11 и получаю пустой результат.

Ну так и? Нажимаешь до, желая получить после?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

122

Re: AHK: Заполнение формы на веб-сайте

А сейчас перестало долго тормозить при загрузке.
Непонятно.
Вот пример сайта, где DocumentComplete не срабатывает.

f10::
oIE := ComObjCreate("InternetExplorer.Application")
ComObjConnect(oIE, "IE_"), loading := true ; Connect IE object & set var "loading" as TRUE
oIE.visible := true
oIE.navigate("http://www.ss.lv/ru/real-estate/flats/riga/centre/hand_over/")
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
oIE.document.querySelector("#f_o_8_min").value := 150
oIE.document.querySelector("#f_o_8_max").value := 250
oIE.document.querySelector("input[type=""submit""]").click()
while, loading
   Sleep, 10
MsgBox, % oIE.document.documentElement.OuterHtml
return

IE_DocumentComplete() { ; the "IE_" prefix corresponds to the ComObjConnect() function above
   global loading := false ; Break the While-Loop
}

123

Re: AHK: Заполнение формы на веб-сайте

Но работают таковые (как я понял) не на всех сайтах.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

124 (изменено: Malcev, 2014-12-20 21:26:39)

Re: AHK: Заполнение формы на веб-сайте

А возможно, чтобы IE не тянул за собой картинки, скрипты и флеш, по типу WinHttpRequest?
Если я выключу в настройках IE показывание картинок и отключу плагин флеш-плеера, значит ли это, что я не буду тратить время на их скачивание?

125

Re: AHK: Заполнение формы на веб-сайте

Вопрос хороший, лично я не в курсе.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

126

Re: AHK: Заполнение формы на веб-сайте

Если я выключу в настройках IE показывание картинок и отключу плагин флеш-плеера, значит ли это, что я не буду тратить время на их скачивание?

Вообще это помогает экономить трафик. Следовательно, объекты действительно не загружаются.

127

Re: AHK: Заполнение формы на веб-сайте

Интересно, как програмно включить данные настройки, и желательно только для запущенного экземпляра.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

128

Re: AHK: Заполнение формы на веб-сайте

Что даёт поиск:

Где хранятся настройки браузеров
IE   Internet Explorer.

IE HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main


C:\Users\username\AppData\Local\Microsoft\Windows\History

Параметры IE не хранятся в одном месте, а раскидано по всей системе .

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main - пользовательские настройки IE(стартовая страница, прокси и т.д.)
    %USERPROFILE%\favorites - избранное, аля закладки.
    %USERPROFILE%\AppData\Local\Microsoft\Windows\History(Win 7),
    %USERPROFILE%\Local Settings\History (Win XP) - история посещенных страниц Internet Explorer

    %USERPROFILE% - переменная окружения, хранит в себе путь до профиля пользователя.

То есть в реестре наверно можно отключать. Но как на текущем экземпляре отразится - не проверял.

129

Re: AHK: Заполнение формы на веб-сайте

Как тут проверяли последний IE время от времени обращается к регистру во время работы.

130

Re: AHK: Заполнение формы на веб-сайте

serzh82saratov пишет:

как я получу текст в HTML виде не создав объект InternetExplorer.Application через скрипт?

Его же можно получить:

ControlGet, hwnd, HWND, , Internet Explorer_Server1, ahk_class IEFrame
pwin := WBGet(hwnd)
MsgBox % pwin.document.body.outerHTML
 
WBGet(hwnd)   {
    static msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT")
        , IID_IHTMLWindow2 := "{332C4427-26CB-11D0-B483-00C04FD90119}"
    SendMessage, msg,,,, ahk_id %hwnd%
    DllCall("oleacc\ObjectFromLresult", "Ptr", ErrorLevel, "Ptr", 0, "Ptr", 0, PtrP, pdoc)
    Return ComObj(9,ComObjQuery(pdoc,IID_IHTMLWindow2,IID_IHTMLWindow2),1), ObjRelease(pdoc)
}

А можно ли таким маневром или как-нибудь еще нажать на кнопку в IE (не создавая изначально объект InternetExplorer.Application через скрипт )?

131

Re: AHK: Заполнение формы на веб-сайте

А можно ли таким маневром

Ну так всё как обычно, получаем элемент, применяем метод "Click".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

132

Re: AHK: Заполнение формы на веб-сайте

Так обычно мы создаем объект, и получаем элемент.
А мне надо чтоб вот я сижу просто в броузере, нажимаю f11 и  у меня кликает по кнопке.

133

Re: AHK: Заполнение формы на веб-сайте

Так, а что мешает нажать на кнопку, и получить элемент?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

134

Re: AHK: Заполнение формы на веб-сайте

Так работает:

f9::
oIE := ComObjCreate("InternetExplorer.Application") 
oIE.navigate("http://forum.script-coding.com/viewtopic.php?pid=93123#p93123")   
oIE.visible := True, oIEHWND := oIE.HWND 
WinMaximize ahk_id %oIEHWND%  
While, oIE.busy
    Sleep, 20  
oIE.document.querySelector("INPUT[Name=""submit_button""]").click() 

А так нет:

f9::
oIE := ComObjCreate("InternetExplorer.Application") 
oIE.document.querySelector("INPUT[Name=""submit_button""]").click() 

135

Re: AHK: Заполнение формы на веб-сайте

Я тебя не понимаю. Тебе нужен "твой" IE, или уже запущенный?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

136

Re: AHK: Заполнение формы на веб-сайте

IE, который я запустил через start->programs->IE.
И в какой-то момент мне надо нажать на кнопку не мышкой, а клавишей.

137

Re: AHK: Заполнение формы на веб-сайте

Ну? Получаешь через

 pwin := WBGet(hwnd)

и далее как работает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

138 (изменено: Malcev, 2015-04-08 20:29:09)

Re: AHK: Заполнение формы на веб-сайте

У меня то работает, то не работает:


f3::
ControlGet, hwnd, HWND, , Internet Explorer_Server1, ahk_class IEFrame
pwin := WBGet(hwnd)
pwin.document.querySelector("INPUT[Name=""submit_button""]").click() 
 
WBGet(hwnd)   {
    static msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT")
        , IID_IHTMLWindow2 := "{332C4427-26CB-11D0-B483-00C04FD90119}"
    SendMessage, msg,,,, ahk_id %hwnd%
    DllCall("oleacc\ObjectFromLresult", "Ptr", ErrorLevel, "Ptr", 0, "Ptr", 0, PtrP, pdoc)
    Return ComObj(9,ComObjQuery(pdoc,IID_IHTMLWindow2,IID_IHTMLWindow2),1), ObjRelease(pdoc)
}

Хммм. Иногда название контрола вместо Internet Explorer_Server1 дает Internet Explorer_Server8
Все, понял почему - После вызова панели разработчика IE меняет название контрола на Internet Explorer_Server8

139

Re: AHK: Заполнение формы на веб-сайте

А "ComObjectActive" (как в MSWord\Excel) для IE не работает?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

140

Re: AHK: Заполнение формы на веб-сайте

Я нигде такого не встречал.
Метод из поста 138 хорош, только надо учитывать, что номер Internet Explorer_Server у IE после каких-либо действий может измениться.
Например, после вызова панели разработчика и ее закрытии, номер сервера меняется на 8. Так что метод не идеален. Кто его знает после каких обстоятельств контрол снова изменится.

141 (изменено: serzh82saratov, 2015-04-09 22:46:30)

Re: AHK: Заполнение формы на веб-сайте

Покопай на офф форуме, помнится что был код (аналог функции WBGet) который всегда берёт хэндл нужного контрола, что то там про родительский контрол.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

142 (изменено: Alectric, 2015-04-09 22:09:02)

Re: AHK: Заполнение формы на веб-сайте

По примеру отсюда, да и в справке наверно есть:

oIE := ComObjActive("InternetExplorer.Application")

Попробуй.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

143

Re: AHK: Заполнение формы на веб-сайте

Покопай на офф форуме, помнится что был код (аналог функции WBGet) который всегда берёт хэндл нужного контрола, что то там про родительский контрол.

Что-то не могу накопать.

По примеру отсюда, да и в справке наверно есть:
oIE := ComObjActive("InternetExplorer.Application")
Попробуй.

Так у меня не работает.

144

Re: AHK: Заполнение формы на веб-сайте

К сожалению данный вариант не дает возможности использовать, информацию о загрузке страницы.

f3::
ControlGet, hwnd, HWND, , Internet Explorer_Server1, ahk_class IEFrame
pwin := WBGet(hwnd)
pwin.document.querySelector("INPUT[Name=""submit_button""]").click() 
While pwin.readyState != 4 || pwin.document.readyState != "complete" || pwin.busy
   Sleep, 10
msgbox, loaded
 
WBGet(hwnd)   {
    static msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT")
        , IID_IHTMLWindow2 := "{332C4427-26CB-11D0-B483-00C04FD90119}"
    SendMessage, msg,,,, ahk_id %hwnd%
    DllCall("oleacc\ObjectFromLresult", "Ptr", ErrorLevel, "Ptr", 0, "Ptr", 0, PtrP, pdoc)
    Return ComObj(9,ComObjQuery(pdoc,IID_IHTMLWindow2,IID_IHTMLWindow2),1), ObjRelease(pdoc)
}

145

Re: AHK: Заполнение формы на веб-сайте

Какие есть идеи по загрузке контента страницы на которой стоит "Auto Load More Data On Page Scroll"?
Возьмем, как пример - твиттер.
Пока пришло в голову либо c посылом Pgdn, что как-то криво:

oIE := ComObjCreate("InternetExplorer.Application")
oIE.navigate("https://twitter.com/autohotkey")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
loop 5
{
   Send, {PgDn}
   sleep, 500
}
If instr(oIE.document.documentElement.OuterHtml, "Check out our new tutorials forum")
   msgbox all loaded
else 
   msgbox error
return

Либо с максимальным уменьшением окна эксплорера, что тоже не очень, так как не смог уменьшить окно эксплорера до нужных мне размеров.

146 (изменено: Malcev, 2015-07-12 05:23:32)

Re: AHK: Заполнение формы на веб-сайте

Кто знает, как кликнуть на джава-скрипт кнопку без применения acc?
Так не нажимается.

oIE := ComObjCreate("InternetExplorer.Application")
oIE.navigate("http://help.dottoro.com/external/examples/ljwcseaq/onmousedown_4.htm")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
oIE.document.querySelector("BUTTON[Id=""testButton""]").click()

147 (изменено: Alectric, 2015-07-12 10:38:30)

Re: AHK: Заполнение формы на веб-сайте

Та кнопка даже на ентер не реагирует.

oIE.document.all[18].click()

Так ошибки не выдает, но и не реагирует.

И еще кнопка реагирует и на клик правой и средней кнопки мыши.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

148 (изменено: Malcev, 2018-11-14 23:26:18)

Re: AHK: Заполнение формы на веб-сайте

oIE := ComObjCreate("InternetExplorer.Application")
oIE.navigate("http://help.dottoro.com/external/examples/ljwcseaq/onmousedown_4.htm")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10

;~ initMouseEvent(eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg)

MouseDownEvent := oIE.document.createEvent("MouseEvent")
MouseDownEvent.initMouseEvent("mousedown",true,false, _, _, _, _, _, _, _, _, _, _, _, _)

MouseUpEvent := oIE.document.createEvent("MouseEvent")
MouseUpEvent.initMouseEvent("mouseup",true,false, _, _, _, _, _, _, _, _, _, _, _, _)


oIE.document.querySelector("BUTTON[Id=""testButton""]").dispatchEvent(MouseDownEvent)
oIE.document.querySelector("BUTTON[Id=""testButton""]").dispatchEvent(MouseUpEvent)

return

А вот вариант исполнения джаваскрипта напрямую:

IID := "{332C4427-26CB-11D0-B483-00C04FD90119}"   ;// IID_IHTMLWindow2
 
oIE := ComObjCreate("InternetExplorer.Application")
oIE.navigate("http://help.dottoro.com/external/examples/ljwcseaq/onmousedown_4.htm")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
 
window := ComObj(9,ComObjQuery(oIE,IID,IID),1)
 
window.OnButtonDown(button := oIE.document.getElementById("testButton"))
sleep 200
window.OnButtonUp()

Или так:

oIE := ComObjCreate("InternetExplorer.Application")
oIE.navigate("http://help.dottoro.com/external/examples/ljwcseaq/onmousedown_4.htm")
oIE.visible := true

While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10

oIE.document.parentWindow.execScript("OnButtonUp()")

149

Re: AHK: Заполнение формы на веб-сайте

Какие есть варианты получения информации о том, что IE завис?

150 (изменено: Alectric, 2015-07-16 21:15:46)

Re: AHK: Заполнение формы на веб-сайте

Отправить сообщение (не знаю какое), если не ответит - значит завис.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

151

Re: AHK: Заполнение формы на веб-сайте

Бывает, что зависает не весь IE, а некоторые вкладки (tabs).

152

Re: AHK: Заполнение формы на веб-сайте

Делал нечто подобное.
Брал заранее известное количество элементов и если страница прогрузила достаточное кол-во элементов, то значит все в порядке, если нет - зависло.
Что то вроде:

loop,1000 ; как долго ждать (100 сек)
{
  sleep,100
  if NumOfElements>500
    break
}

Скорей всего не подойдет, если кол-во элементов не меняется при "зависании".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

153

Re: AHK: Заполнение формы на веб-сайте

Да, не подойдет.
Вот тут написано о сообщении - но как его послать IE не пойму.
https://support.microsoft.com/en-us/kb/231844

154

Re: AHK: Заполнение формы на веб-сайте

Нашел:
http://www.autohotkey.com/board/topic/8 … ng-window/

155 (изменено: Malcev, 2015-12-18 22:44:36)

Re: AHK: Заполнение формы на веб-сайте

Что-то такой метод определения загрузки страницы иногда меня подводит.
ИЕ не выходит из цикла.

While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10

Поэтому использую вот такой:

loop 100
{
   oIE.navigate("http://www.yandex.ru")
   While !InStr(oIE.document.documentElement.OuterHtml, "yandex")
      Sleep, 10
   oIE.navigate("about:blank")
   While (oIE.document.documentElement.OuterHtml != "<html><head></head><body></body></html>")
      Sleep, 10
}

Есть ли какие-нибудь 100% варианты?
Кто-то пользуется только такой строкой?
Дает осечку?

While oIE.readyState != 4

156 (изменено: Alectric, 2015-12-19 09:29:36)

Re: AHK: Заполнение формы на веб-сайте

Таким вариантом пользовался:


gosub,WaitIE ; вставлять там где нужно ждать загрузки

WaitIE:
While IE.readyState != 4 || IE.busy
{
  tooltip,% index
  Sleep,100
}
loop ; ,1200
{
  elements:=IE.document.body.all
  if elements.length>500
    break
  sleep,100
  tooltip,% a_index "`n" elements.length
}
tooltip
if (ie.document.getElementById("mainTitle").InnerText="Internet Explorer не может отобразить эту веб-страницу")
{
  tooltip,Ошибка
  return
}
return
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

157 (изменено: nuts, 2016-05-01 17:58:24)

Re: AHK: Заполнение формы на веб-сайте

Возможно как-то сделать автозаполнение без привязки к адресу страницы, т.е. без oIE.navigate.
Чтобы автозаполнение работало не только с одной страницей ???

158

Re: AHK: Заполнение формы на веб-сайте

nuts, ознакомьтесь с этой темой, отредактируйте свой пост.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

159

Re: AHK: Заполнение формы на веб-сайте

А предыдущую страницу не пробовали почитать?

160 (изменено: nuts, 2016-05-01 19:09:38)

Re: AHK: Заполнение формы на веб-сайте

Malcev Читал всю тему, ответа не нашел.

161

Re: AHK: Заполнение формы на веб-сайте

; зайти на эту ссылку и нажать f3 http://forum.script-coding.com/login.php
f3::
ControlGet, hwnd, HWND, , Internet Explorer_Server1, ahk_class IEFrame
pwin := WBGet(hwnd)
pwin.document.querySelector("#fld1").value := "login"
pwin.document.querySelector("#fld2").value := "pass"
return
 
WBGet(hwnd)   {
    static msg := DllCall("RegisterWindowMessage", "str", "WM_HTML_GETOBJECT")
        , IID_IHTMLWindow2 := "{332C4427-26CB-11D0-B483-00C04FD90119}"
    SendMessage, msg,,,, ahk_id %hwnd%
    DllCall("oleacc\ObjectFromLresult", "Ptr", ErrorLevel, "Ptr", 0, "Ptr", 0, PtrP, pdoc)
    Return ComObj(9,ComObjQuery(pdoc,IID_IHTMLWindow2,IID_IHTMLWindow2),1), ObjRelease(pdoc)
}

162

Re: AHK: Заполнение формы на веб-сайте

Malcev Под гугл хром его можно подпилить ???

163

Re: AHK: Заполнение формы на веб-сайте

Через Selenium наверное можно.
Но тут вам придется самому пилить.
Потом можете результаты запостить тут:
http://forum.script-coding.com/viewtopic.php?id=11530

164 (изменено: nuts, 2016-05-04 16:30:37)

Re: AHK: Заполнение формы на веб-сайте

Malcev А я вот что нарыл, функционал как раз то что надо для интернет магазина и заполнения форм и кучу всякого хлама в придачу устанавливать не надо как с Selenium.
Извиняюсь если оффтоп. https://xakep.ru/2014/10/20/imacros/

165

Re: AHK: Заполнение формы на веб-сайте

nuts, для заполнения форм тогда уже будет удобнее LastPass.

166

Re: AHK: Заполнение формы на веб-сайте

becauseim Вообще не то, причем тут логин и пароль. Речь идет о заполнении форм основываясь на их ID ( и нажиманию кнопок, чекбоксов и т.п. на странице ), например в админке интернет магазина или любом другом сайте с такими-же ID.

167

Re: AHK: Заполнение формы на веб-сайте

nuts, есть возможность заполнения форм. Есть стандартные положения, такие как "телефон", "адрес", "Ф.И.О.", а также возможность добавления пользовательских форм на любых языках. Исходя из названия темы, я представил себе именно это. Переключение чекбоксов в упомянутом мною сервисе, скорее всего, не предусмотрено.

168 (изменено: dmimen, 2017-12-01 03:44:17)

Re: AHK: Заполнение формы на веб-сайте

Помогите пожалуйста, в данном примере поле "СООБЩЕНИЕ" остается не заполненным. Что нужно добавить/исправить?


oIE := ComObjCreate("InternetExplorer.Application") 
oIE.navigate("http://donatepay.ru/donation/stasikpwnz")   
oIE.visible := True, oIEHWND := oIE.HWND 
WinMaximize ahk_id %oIEHWND%  
While, oIE.busy
    Sleep, 20  

Input:
    MsgBox Заполнить
    oDoc := oIE.document
    oDoc.querySelector("#name").value := "user"
    oDoc.querySelector("#amount").value := "500" 
	oDoc.querySelector("#message").value := "сообщение"
	MsgBox Пожертвовать
    oDoc.querySelector("button[class=""button mr10 goButton pull-right""]").click()

169 (изменено: Malcev, 2017-12-01 02:42:32)

Re: AHK: Заполнение формы на веб-сайте

У поля "сообщение" айди нету и это div.
А у div нету аттрибута value.
Зато есть textContent и innerText.

170

Re: AHK: Заполнение формы на веб-сайте

Malcev пишет:

Зато есть textContent и innerText.

А как их правильно применить в данной ситуации?
При замене "value", текст подставляется, но не в поле, а за место поля и не отправляется.

171

Re: AHK: Заполнение формы на веб-сайте

Я же написал, что

Malcev пишет:

У поля "сообщение" айди нету

Поэтому посмотрите, за что там можно зацепиться и используйте форму записи по типу:

oDoc.querySelector("button[class=""button mr10 goButton pull-right""]")

172 (изменено: svoboden, 2017-12-05 03:48:56)

Re: AHK: Заполнение формы на веб-сайте

Вообще-то у поля "сообщение" id есть.
А через консоль у меня так заполняет поле "сообщение", например:

$('div')[28].innerText = ("сообщение")

Как под com это переделать, не проверял.

173

Re: AHK: Заполнение формы на веб-сайте

svoboden пишет:

Вообще-то у поля "сообщение" id есть.

И какое же оно?

174

Re: AHK: Заполнение формы на веб-сайте

Тут.

175

Re: AHK: Заполнение формы на веб-сайте

Что значит тут?
Назовите id.

176 (изменено: svoboden, 2017-12-05 03:48:29)

Re: AHK: Заполнение формы на веб-сайте

Там же указано в средствах разработчика:
id="message", а у тс: #message.

177

Re: AHK: Заполнение формы на веб-сайте

Раз там всё указано, то почему вы заполняете с консоли не через айди?
Заполните через id="message" и посмотрите результат.

178 (изменено: Malcev, 2017-12-05 01:07:34)

Re: AHK: Заполнение формы на веб-сайте

svoboden пишет:

Там же указано в средствах разработчика:
id="message"
, а у тс: #message

Учите матчасть.

179

Re: AHK: Заполнение формы на веб-сайте

Malcev пишет:

почему вы заполняете с консоли не через айди?

Потому что через id сообщение "въедается" в это окно, и больше не заполняется, а через div нормально все.

180

Re: AHK: Заполнение формы на веб-сайте

svoboden пишет:

Вообще-то у поля "сообщение" id есть.

Malcev пишет:

Раз там всё указано, то почему вы заполняете с консоли не через айди?

svoboden пишет:

Потому что через id сообщение "въедается" в это окно, и больше не заполняется

Вы сами себе противоречите.

svoboden пишет:

а через div нормально все.

Что вы имеете в виду "через div"?

181 (изменено: svoboden, 2017-12-05 01:32:49)

Re: AHK: Заполнение формы на веб-сайте

Я имею в виду, что можно перебрать все div элементы найти нужный и заполнить его.

182

Re: AHK: Заполнение формы на веб-сайте

Можно и это делается методом getElementsByTagName или как у вас через jquery.
Но это совсем не значит, что у всех перебираемых элементах должен присутствоовать свой айди.

183 (изменено: vano3341, 2018-10-14 23:42:19)

Re: AHK: Заполнение формы на веб-сайте


oIE := ComObjCreate("InternetExplorer.Application") 
oIE.visible := True, oIEHWND := oIE.HWND 
oIE.navigate("http://samp-rp.su/login/")   
WinMaximize ahk_id %oIEHWND%  
While, oIE.busy
    Sleep, 20  
Input:
    oDoc := oIE.document
    oDoc.querySelector("input[name=""login""]").value := "Тут Логин"
    oDoc.querySelector("input[name=""password""]").value := "Тут Пароль"
	Sleep, 1000
	oDoc.querySelector("button[class=""button button--primary button--icon button--icon--login rippleButton""]").click() 
	Sleep, 3000
oIE.navigate("http://samp-rp.su/forums/transport-pokupka-prodazha-obmen.516/post-thread")   
 

Кто может сказать в чём причина что по второй ссылке уже не проходит, и выдаёт ошибку что navigate занят

184

Re: AHK: Заполнение формы на веб-сайте

vano3341, вряд ли вам тут будут помогать в изготовлении спам-бота.