|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как нажать на ява-кнопку |
|
|
[решено] Как нажать на ява-кнопку
|
Новый участник Сообщения: 35 |
Простите за тупой вопрос, как съэмулиповать нажатие такой кнопки?:
<td><a href="javascript:document.loginForm.submit();"><img src="http://www.сайт.ru/assets/image/button_small-trans.png"></a></td> Ну тоесть используем скажем конструкцию: $oIE = _IECreate (" http://www.сайт.ru/") _IELoadWait ($oIE) $oUser =_IEGetObjByName($oIE,"login") $oPass =_IEGetObjByName($oIE,"password") _IEFormElementSetValue ($oUser, 'ник') _IEFormElementSetValue ($oPass, 'пароль') и натыкаемся на вышеописанную кнопку, как ее в итоге нажать? А то помучился, но так и не сообразил |
|
Отправлено: 01:18, 05-10-2009 |
$AutoITer Сообщения: 446
|
Профиль | Отправить PM | Цитировать _IEFormSubmit
![]() |
------- Отправлено: 13:59, 05-10-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать |
Отправлено: 00:53, 06-10-2009 | #3 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Пожалуй, вот так:
$oIE = _IECreate (" http://www.сайт.ru/") _IELoadWait ($oIE) $Form=_IEFormGetObjByName($oIE,"loginForm"); насколько я понял, в данном примере форма называется loginForm, хотя в каждом случае отдельно смотреть надо название формы $oUser =_IEGetObjByName($Form,"login") $oPass =_IEGetObjByName($Form,"password") _IEFormElementSetValue ($oUser, 'ник') _IEFormElementSetValue ($oPass, 'пароль') _IEFormSubmit($Form) ![]() |
Отправлено: 08:41, 06-10-2009 | #4 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Ага, спасибо, сделал уже вчера, как-то так..:
#include <IE.au3> Opt("TrayIconDebug",1) $oIE = _IECreate (" http://www.сайт.ру") $oUser =_IEGetObjByName($oIE,"login") If @Error = 0 Then _IELoadWait ($oIE) $oSubmit = _IEGetObjByName ($oIE,"loginForm") $oUser =_IEGetObjByName($oIE,"login") $oPass =_IEGetObjByName($oIE,"password") _IEFormElementSetValue ($oUser, 'ник') _IEFormElementSetValue ($oPass, 'йцукен') _IEFormSubmit ($oSubmit, "click") EndIf |
|
Последний раз редактировалось zbruy, 21-10-2009 в 14:37. Отправлено: 11:22, 06-10-2009 | #5 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Если нет иных ссылок, имеющих статическую часть "http://192.168.12.158/infa1", можно так:
#include <IE.au3> Opt("TrayIconDebug",1) $oIE = _IECreate (" http://www.сайт.ру") $Links=_IELinkGetCollection($oIE) for $Link in $Links if StringInStr(_IEPropertyGet($Link,"innerhtml"),"http://192.168.12.158/infa1")<>0 then $Link.click exitloop endif next |
Отправлено: 18:31, 06-10-2009 | #6 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать В первом скрипте все ссылки перебираются по очереди. Если программа определяет, что в текущей ссылке имеется кусок "http://192.168.12.158/infa1", она кликнет по этой ссылке, каким бы ни было продолжение.
Во втором примере вам нужно знать текст ссылки (то, что на ней написано). Программа определяет нужную ссылку, исходя из текста, а не URL-адреса, на который эта ссылка отсылает. |
Отправлено: 21:16, 06-10-2009 | #7 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать evg64, да, но ведь изначально кусок ссылки "http://192.168.12.158/infa1" в коде страницы не указывается, там есть только '?response=3&info=12' кусок. Поэтому скрипт ничего не найдет. Мысль я понял. Но простой поиск даже если я буду искать скажем по шаблону ?response=3&info= найти то он найдет, затем нужно эту ссылочку собрать, чтобы по ней перейти
![]() |
Отправлено: 22:49, 06-10-2009 | #8 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать хх - две цифры?
Тогда: #include <IE.au3> $FinalLink="" $LinkFound=0 Opt("TrayIconDebug",1) $oIE = _IECreate (" http://www.сайт.ру") $Links=_IELinkGetCollection($oIE) for $Link in $Links if StringInStr(_IEPropertyGet($Link,"innerhtml"),"?response=0&info=")<>0 then ; находим ссылку с частью "?response=0&info=", насколько я понял, она на странице одна-единственная for $i=0 to 99; начинаем перебирать варианты от 00 до 99 $LinkPart="?response=0&info="&$i if $i<10 then $LinkPart="?response=0&info=0"&$i if _IEPropertyGet($Link,"innerhtml")==$LinkPart then ; если есть совпадение, значит компонуем финальную ссылку в следующей строке и выходим из циклов $FinalLink="http://192.168.12.158/infa1"&$LinkPart $LinkFound=1 exitloop endif next endif if $LinkFound then exitloop next msgbox(0,"Искомая ссылка:",$FinalLink) |
Отправлено: 08:14, 07-10-2009 | #9 |
Пользователь Сообщения: 60
|
Профиль | Отправить PM | Цитировать Она бы подошла если б сразу написать пример исходного URL. Вот, подкорректированный рабочий вариант(ищет и помещает в массив результатов только первую ссылку):
#include <IE.au3> #include <INet.au3> #include <Array.au3> Dim $prot = "http://" Dim $domen = "192.168.12.158" Dim $delim = "/" Dim $s_get = "infa1" Dim $s_page = "index.html" ;Dim $browser = "iexplore.exe" $get_data = _INetGetSource($domen&$delim&$s_get) If @Error = 1 Then MsgBox(16, "Error", "Не могу загрузить страницу!") Exit Else MsgBox(4096, "Ok!", "Загружено: "&StringLen($get_data)&" байт") EndIf $qts = "['""]" $prs_data = "<a.*href="&$qts&"(\?response=0&info=[0-9]+)"&$qts& _ ".*>(.[^><]*)</a><br/><br/>" $prs_arr = StringRegExp($get_data, $prs_data, 1) If UBound($prs_arr) > 0 Then _ArrayDisplay( $prs_arr, "Результаты поиска:" ) _IECreate ($prot&$domen&$delim&$s_get&$prs_arr[0]) Else MsgBox(16, "RegExp Error", "Ошибка поиска по шаблону. Код ошибки="&@error) EndIf "index.html" нужно заменить на страницу с сылками. |
Последний раз редактировалось Sp01LeR, 07-10-2009 в 15:50. Отправлено: 15:04, 07-10-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Помогите нажать на хитрую кнопку | hamas | AutoIt | 9 | 06-01-2010 11:32 | |
[решено] Как нажать flash (флеш) кнопку? | uninstall | AutoIt | 1 | 16-11-2009 12:20 | |
Как нажать на ява ссылку? | olehis | AutoIt | 1 | 14-10-2009 20:10 | |
[решено] как можно нажать CTRL+ALT+Del одновременно | alexey_a | AutoIt | 11 | 14-04-2009 17:49 | |
[решено] Как кликнуть на кнопку в IE | r35TnX | AutoIt | 2 | 10-03-2009 20:23 |
|