Что нового

[Автоматизация] Как нажать submit

ulan44

Знающий
Сообщения
55
Репутация
8
Добрый день
Есть проблема с нажатием кнопки submit имеет такой вид

Код:
<input type="submit" class="button_1" value="ПОИСК">
Если бы у нее было id или name то не составило труда ее нажать, а так хз.
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Существует закрепленная тема
http://autoit-script.ru/index.php/topic,12620.0.html.
Информации в этой теме должно быть достаточно для решения Вашей проблемы.
Если что-то не понятно из указанной темы, то просьба указать, что именно было не понятно, и что именно не получилось.
 
Автор
U

ulan44

Знающий
Сообщения
55
Репутация
8
Кнопка у меня не в тэге <span>

Вот полный код

Код:
<form method="POST" action="?a=monster">
	<input type="hidden" name="k" value="26550">
		<div class="sub_title bar_brown corner3 center margin_sub_title"><p class="sub_title_other">Цена: <span class="price_num">1</span> <b class="icon money2 title_is_bind" title="Кристаллы"></b></p></div>
		<div class="watch_attack_level">
	<select name="level" class="field select_level " id="level"><option value="1" selected="">Страшилка 1 ур.</option><option value="2">Страшилка 2 ур.</option><option value="3">Страшилка 3 ур.</option><option value="4">Бандюк 1-3 ур.</option></select>
	<div class="flright">
<input type="submit" class="cmd_all cmd_row7 cmd_arow7 " value="АТАКА">
Код:
</div>
</div>
</form>
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Как я понимаю, используется JavaScript.
В этом случае необходимо имитировать нажатие.

Код:
$oLinks1 = _IEFormElementGetCollection($form) ; где $form - это форма
	For $oLink1 In $oLinks1
		If StringInStr(_IEPropertyGet($oLink1, "outerhtml"), "submit") Then ; вместо "submit" указывается текст, идентифицирующий кнопку
			$oLink1.fireEvent("onmousedown")
			$oLink1.fireEvent("onmouseup")
			_IEAction($oLink1,'click')
			_IELoadWait($form)
			ExitLoop
		EndIf
	Next


Просьба проверить, не уверен что будет работать.
 
Автор
U

ulan44

Знающий
Сообщения
55
Репутация
8
Спасибо заработало вот так

Код:
$oIE2 = _IECreate ("УРЛ сайта")
$oForm = _IEFormGetCollection ($oIE2, 2)

    $oLinks1 = _IEFormElementGetCollection($oForm)
    For $oLink1 In $oLinks1
        If StringInStr(_IEPropertyGet($oLink1, "outerhtml"), "submit") Then
            $oLink1.fireEvent("onmousedown")
            $oLink1.fireEvent("onmouseup")
            _IEAction($oLink1,'click')
            _IELoadWait($form)
            ExitLoop
        EndIf
    Next

Но теперь как то не красиво получается, что при выполнении данного скрипта открывается новое окно, не могли бы подсказать как сделать чтоб при
выполнении
Код:
_IECreate
ссылка открывалась в этом же окне.
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
_IECreate создает IE документ.
Если Вам не нужно его открывать, а нужно использовать уже открытый документ, то используйте _IEAttach
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ulan44 [?]
Но теперь как то не красиво получается, что при выполнении данного скрипта открывается новое окно
Добавьте
Код:
;...
$oLink1.target = '_self'
_IEAction($oLink1,'click')
;...
 

alex2014

Новичок
Сообщения
1
Репутация
0
ещё одно решение:
Код:
$oInputs = _IETagNameGetCollection ($oIE2, "input")
For $oInput In $oInputs
    If $oInput.type="submit" Then  _IEAction($oInput,"click")
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ulan44 [?]
Спасибо заработало вот так

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх