Автор Тема: В веб-интерфейсе при имитации нажатия на "Save Settings" выдаёт "No change!"  (Прочитано 460 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pvl57 [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Доброго всем дня! В веб-интерфейсе роутера D-Link Dir-140L после изменения значения "IKE Lifetime" при имитации нажатия на "Save Settings" выдаёт "No change!", хотя изменения вносятся. Почти всё сделал, а тут затык. Помогите, пожалуйста.

<BODY onmousedown="whichElement(event)" leftMargin="0" rightMargin="0" topMargin="1"><DIV id="MainContent"><TABLE border="0" cellSpacing="1" borderColorDark="#ffffff" cellPadding="2" width="838" bgColor="#ffffff" align="center" height="100%"><TBODY><TR vAlign="top"><TD id="mainform"><DIV id="FormDesc"><SPAN id="headerbut">
 
<INPUT id="_aothers_12_" onclick="submitFuncs()" type="button" value="Save Settings" />
 
</SPAN></DIV></TD></TR></TBODY></TABLE></DIV></BODY></HTML>

Делаю следующим образом:
Код: AutoIt [Выделить]
                        $oFrame = _IEFrameGetObjByName ($oIE, "main") ; //change IKE Lifetime
                        $oInputs = _IETagNameGetCollection ($oFrame, "input")
                        For $oInput In $oInputs
;~                          GUICtrlSetData($Input1,$oInput.value)
;~                          Sleep(2000)
                            If $oInput.name = "S00706009" Then
                                _IEAction($oInput, "focus")
                                Local $IKE = StringRight($oInput.value, 1)
                                Send("^a")
                                Sleep(2000)
                                Send("{DEL}")
;~                              Sleep(2000)
                                If $IKE <> 0 Then
                                    Send("{2}")
                                    Send("{8}")
                                    Send("{0}")
                                    Send("{0}")
                                    Send("{0}")
                                    _IEFormSubmit($oIE)
;~                                  _IELoadWait($oIE)
;~                                  _IEFormElementSetValue($oInput, 28000)
                                    Sleep(2000)
                                    ExitLoop
                                EndIf
                                If $IKE <> 1 Then
                                    Send("{2}")
                                    Send("{8}")
                                    Send("{0}")
                                    Send("{0}")
                                    Send("{1}")
                                    _IEFormSubmit($oIE)
;~                                  _IELoadWait($oIE)
;~                                  _IEFormElementSetValue($oInput, 28001)
                                    Sleep(2000)
                                    ExitLoop
                                EndIf
;~                              ExitLoop
                            EndIf
                        Next
                        $iStatus = _IEPropertyGet($oIE, "statustext")
                        GUICtrlSetData($Input1, $iStatus)
                        Sleep(2000)

                        $oFrame = _IEFrameGetObjByName ($oIE, "main") ;// Save Settings
                        $oInputs = _IETagNameGetCollection ($oFrame, "input")
                        For $oInput In $oInputs
;~                          GUICtrlSetData($Input1,$oInput.value)
;~                          Sleep(2000)
                            If $oInput.value = "Save Settings" Then
                                _IEAction($oInput, "click")
                                ExitLoop
                            EndIf
                        Next


Русское сообщество AutoIt


Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
На другом сайте была подобная проблема, использовал _IEAction($oInput, "blur")
Код: AutoIt [Выделить]
_IEAction($oInput, "focus")
_IEAction($oInput, "click")
_IEPropertySet($oInput, "value", "28000")
_IEAction($oInput, "blur")

Is it future or is it past?

Оффлайн pvl57 [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
_IEAction($oInput, "blur") не помог. По идее, при нажатии на другую кнопку фокус и так теряется. Что интересно, после сообщения "No Change!" предлагают нажать "Continue"  - происходит возврат к предыдущему окну с вводом параметров. Несколько раз сам мышкой повторял цикл Save Settings - No Change - Continue. Но если ткнуть в поле IKE Lifetime (ничего не меняя), а затем Save Settings - настройки сохраняются. Так что, наверно, дело в фокусе. Но вот вопрос - как добиться нужного результата? Буду ещё что-то пробовать.

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Действительно, не установили фокус на кнопку. Вот код, попробуйте
Код: AutoIt [Выделить]
                        For $oInput In $oInputs
;~                          GUICtrlSetData($Input1,$oInput.value)
;~                          Sleep(2000)
                            If $oInput.value = "Save Settings" Then
                                _IEAction($oInput, "focus") ; <<<<<<<<<<<
                                Sleep(10)
                                _IEAction($oInput, "click")
                                ExitLoop
                            EndIf
                        Next


Русское сообщество AutoIt


Оффлайн pvl57 [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Тоже нет нужного результата. Уже и {Enter } после ввода значения посылал, и сымитировал Continue - фокус в Input -  снова Save Settings. Нету изменений!  Не понимаю...  :stars:


Добавлено: Сентябрь 29, 2017, 16:52:37
<INPUT id="_aothers_12_" onclick="submitFuncs()" type="button" value="Save Settings" />
Может функция submitFuncs() что-то проверяет, например, "физическое" нажатие кнопок мыши/клавиатуры?
Уже попробовал установку фокуса на кнопку и Send("{SPACE}") -  :P
« Последнее редактирование: Сентябрь 29, 2017, 16:52:37 от pvl57, Причина: Объединение сообщений »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3989
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

Скорблю и помню.




Оффлайн pvl57 [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
В общем, всё решилось. И проще, вообще без нажатия Save Settings. Просто по-другому обратился, через элемент формы и последующую её отправку :
Код: AutoIt [Выделить]
                    $oFrame = _IEFrameGetObjByName ($oIE, "main") ; //change IKE Lifetime
                        $oForm = _IEFormGetObjByName ($oFrame, "main")
                        $oInput = _IEFormElementGetObjByName ($oForm, "S00706009")
                        $IKE = _IEFormElementGetValue($oInput)
                        $IKE = StringRight($IKE, 1)
                        If $IKE <> 0 Then
                            _IEFormElementSetValue($oInput, "28800")
                            _IEFormSubmit ($oForm, 0)
                        EndIf
                        If $IKE <> 1 Then
                            _IEFormElementSetValue($oInput, "28801")
                            _IEFormSubmit ($oForm, 0)
                        EndIf

Тема закрыта.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
3783 Просмотров
Последний ответ Февраль 10, 2010, 20:41:02
от CreatoR
5 Ответов
7391 Просмотров
Последний ответ Август 07, 2014, 09:07:22
от Cornet
20 Ответов
7661 Просмотров
Последний ответ Октябрь 06, 2010, 00:57:39
от saavaage
0 Ответов
3178 Просмотров
Последний ответ Сентябрь 18, 2011, 14:21:22
от asdf8
2 Ответов
1974 Просмотров
Последний ответ Сентябрь 20, 2011, 19:08:35
от StarEdik
8 Ответов
3106 Просмотров
Последний ответ Февраль 20, 2012, 17:57:27
от marker_mc
3 Ответов
2041 Просмотров
Последний ответ Март 27, 2012, 10:06:18
от Старик
1 Ответов
1335 Просмотров
Последний ответ Октябрь 18, 2013, 19:22:28
от got686
10 Ответов
2658 Просмотров
Последний ответ Декабрь 07, 2015, 08:07:09
от F9
0 Ответов
1182 Просмотров
Последний ответ Март 09, 2017, 06:08:02
от CreatoR