Войти

Показать полную графическую версию : [решено]Нажатие кнопки-картинки в IE


ikif
11-07-2009, 19:16
День добрый.
В похожей теме отмечено [решено], поэтому создал новую.
Я пытаюсь что то реализовать , но пока 0.
Пытался на AHK, ноно AHK c IE не очень дружат..
AUTOIt с IE , как я понял дружат лучше.

Kод формы:


<form method='post' class='inline' action='shtab.php'>
<input type='hidden' name='char_id' value='1234567' />
<input type='hidden' name='shtab' value='shtab' />
<input type='hidden' name='attack' value='attack' />
<input type='hidden' name='k' value='12345' />
<input type='image' name='do_attack' class='image cmd' src='images/b_nap_p.png' alt='напасть'onMouseOver="doImage(this,'b_nap',null)"/ >
</form>
Все INPUT-ы в одной форме.
При нажатии на кнопку-картинку, я пологаю должно отправлятся всё сразу.

Заранее благодарен.

Creat0R
11-07-2009, 22:18
ikif, Сформулируйте более точное название темы, функции AutoIt'а на тему IE можно раздувать очень долго.

proxy
11-07-2009, 22:34
пример:

Opt('MustDeclareVars', 1)
Opt('TrayIconDebug', 1)

#include <IE.au3>

HotKeySet('{ESC}', '_Pro_Exit'); ESC - закрыть скрипт

Local $oIE, $oForm, $oSubmit

$oIE = _IECreate('http://testing.ru/1.htm'); открытие ie окна и старницы 'http://testing.ru/1.htm'
$oForm = _IEFormGetCollection($oIE, 1); поиск и запись в переменную идентификатора (указаетля) второго найденного элемент form на старнице. form можно искать разными путями, смотри пример в справке UDFs3.chm к функции _IEFormGetCollection
_IEFormSubmit($oForm); отправка формы на сервер

Func _Pro_Exit()
Exit
EndFunc

желательно приводить весь html код страницы, минимум от тега <body> до </body>

beve
11-07-2009, 23:06
Ох уж эти онлайн игры...(Чтоб реально помочь нужно видеть хоть эту кнопку в деле, а чтоб увидеть эту кнопку, нужно зарегестрироваться, потом еще играть некоторое время... Вот если бы ты тестовый какой аккаунт создал на ботве, да прошел до нужного места, а сюда выложил бы пароль и логин, тогда можно было бы точно указать, а так только можно направить тебя на изучение справки по ie функциям...)

proxy
11-07-2009, 23:12
Ох уж эти онлайн игры...(Чтоб реально помочь нужно видеть хоть эту кнопку в деле, а чтоб увидеть эту кнопку, нужно зарегестрироваться, потом еще играть некоторое время... Вот если бы ты тестовый какой аккаунт создал на ботве, да прошел до нужного места, а сюда выложил бы пароль и логин, тогда можно было бы точно указать, а так только можно направить тебя на изучение справки по ie функциям...) »
ну почему же. вполне ясно, что при наведение на картинку вызывается js котрый, скорее всего, изменяет её - имитируя hover, но не факт ))
а так как картинка, если на неё кликнуть, возвращает onclick и так как это все таки input - то форма отправляется.
соответсвенно можно предположить, что достаточно незаморачиваться на onMouseOver="doImage(this,'b_nap',null)", а просто отправить форму на сервер.
в куске кода нехватает, для более менее нормального ответа, не хватает всей странице, так как форма на странице может быть одна или 10 штук. в моем примере ищется 2-ая форма...

Creat0R
12-07-2009, 00:34
ikif, Читайте общие правила форума (http://forum.oszone.net/rules.html) (3.12):


3. Запрещается
....
12. Задавать свой вопрос в открытой теме, если он не связан с обсуждаемым в этой теме вопросом.

Последние сообщения из темы [решено] Ищу русскую справку по AutoIT по функциям IEx (http://forum.oszone.net/thread-143622.html) перенёс сюда.

А если в скором времени название темы не будет изменено на более содержательное, то тему и вовсе закрою (в соответствии с п. 2.7 общих правил).

ikif
12-07-2009, 03:50
А если в скором времени название темы не будет изменено на более содержательное, то тему и вовсе закрою (в соответствии с п. 2.7 общих правил). »
Сам незнаю как её выразить, надеюсь так будет нормально.

Форм на страничке много.
И в каждой тоже самое.
При наведении на картинку , она меняется и на неё надо нажать для получения эфекта.
Как можно отправить всю эту форму со всеми input-ами ?
Прошу вас обьясните примером , я на AutoIt еще ни разу не писал.

Заранее спасибо.


P.S .:Другую форму выложу попозже. Они вообщем идентичны и меняется name='k' value='12345' и name='char_id' value='1234567'

proxy
12-07-2009, 04:08
Как можно отправить всю эту форму со всеми input-ами ? »
а чем пример не подошол? (http://forum.oszone.net/post-1165093-3.html)
отправить так: _IEFormSubmit($oForm)

P.S .:Другую форму выложу попозже. Они вообщем идентичны и меняется name='k' value='12345' и name='char_id' value='1234567' »
всю страничку - всюююююю......тут же все связанно! _))))))))))

ikif
13-07-2009, 18:29
День добрый.
Извеняюсь за долгое отсутствие.
Сделал тестовый аккаунт.
Сервер "", Аккаунт "abastrakciya@mail.ru" ,Пароль "test123".


Там зайти в "Штаб" далее в "Штабные списки".

ikif
13-07-2009, 21:32
Найти в коде Ctrl+F и ввести kenny

beve
13-07-2009, 22:06
#include <IE.au3>

$oIE = _IECreate ("http://g1.botva.ru/")
$oForm = _IEFormGetCollection ($oIE, 0)
$email = _IEFormElementGetCollection ($oForm, 1)
$pass= _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($email, "abastrakciya@mail.ru")
_IEFormElementSetValue ($pass, "test123")
_IEFormSubmit ($oForm)


_IELoadWait ($oIE)
_IEImgClick ($oIE, "but_staff_p.png", "src") ;нажатие кнопки ШТАБ


_IELoadWait ($oIE)
_IEImgClick ($oIE, "1b_shtab2_p.png", "src") ; нажатие кнопки Штабные списки

_IELoadWait ($oIE)
$oForm = _IEFormGetCollection ($oIE, 2) ;Сдесь цыфра - это номер игрока в списке сферху вниз: первый игрок - 1 и т. д.(под номером - 0 там форма для ввода-поиска соперника)
_IEFormSubmit ($oForm)


Sleep(10000) ;пауза перед закрытием страницы (закрывать нужно обязательно. Или так, или вручную нажимать ВЫХОД)
_IEImgClick ($oIE, "but_exit_p.png", "src") ;нажатие кнопки ВЫХОД



У меня только так выходит, пока нажать кнопку не по индексу формы (каждый игрок в списке - это новая форма), а по имени игрока - не выходит.




© OSzone.net 2001-2012