1 (изменено: dimas1221, 2012-08-04 10:53:43)

Тема: AHK: Как в браузере поместить фокус в определенное поле ввода?

Здравствуйте. Имеется малюсенький скрипт для авторизации на сайте.
Дело в том, что на сайте в любой момент может появиться (или исчезнуть) какая-нибудь ссылка.
А это мешает авторизации, т.к. до поля ввода логина я добираюсь через "TAB".
Пытался решить проблему с помощью "ControlFocus", но безуспешно (не смог определить значение поля ввода).
Подскажите пожалуйста, как в браузере поместить фокус в определенное поле ввода?

SetKeyDelay, 111
Run, firefox.exe https://moscowsg.megafon.ru ; Открываем страницу
WinWait, ahk_class MozillaWindowClass        ; Ждем открытия браузера
Sleep, 5000                                  ; Ждем еще 5 сек. (для полной загрузки страницы)
Send, {Tab 8}                                ; Вот здесь и загвоздка - табуляция подводит! (как только добавляется или удаляется
                                             ;    какая-нибудь ссылка перед полем ввода, приходится добавлять или удалять "TAB")
Send, 9251234567{tab}123456{enter}           ; Вход
Return

2 (изменено: Irbis, 2012-08-04 14:10:14)

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Не пользуюсь огнелисом, но в Опере есть функция "сохранять пароль". Если пароль сохранен, то после загрузки достаточно нажать (или послать окну) Ctrl+Enter. Скорее всего, в других браузерах тоже есть подобная функция.
И, кстати, на указанной странице в Опере первый же Tab переходит к полю ввода, минуя ссылки. Наверно, это особенность браузера.

3 (изменено: dimas1221, 2012-08-04 15:16:07)

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Благодарю за ответ, Irbis. Но это не выход . Сохранить пароль можно практически в любом браузере. Оперой пользуюсь более 10 лет. Да, Опера в отличие от многих браузеров (как Мозилла, Хром и т.д.), при первом же нажатии на Tab переходит к полю ввода. Но, у меня страницы, где необходимо использовать именно Мозиллу или Интернет Эксплорер (например, uslugi.beeline.ru требуют Internet Explorer). А сайт,  который указан в коде, я выбрал для примера. Как бы там ни было, спасибо что откликнулись .

4 (изменено: Irbis, 2012-08-04 17:41:23)

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Следующий код работает с поиском части изображения экрана. Ужасно.. Но работает.

SetKeyDelay, 111
Run, https://moscowsg.megafon.ru
WinWait, ahk_class OperaWindowClass ; т.к. браузер по умолчанию - Опера
Sleep, 5000
   loop 60
   {
      ImageSearch, X, Y, 0,0, 1280, 720, megafon.bmp
      if !ErrorLevel
      {
         MouseClick,, % X+20, Y+10
	     Send, 9251234567{tab}123456{enter}
	     Break
      }
	  sleep 100
   }
return

Megafon.bmp - небольшой участок экрана, снятый PrintScreen'ом и сохраненный в формате bmp (24bpp):



http://savepic.su/2233266.png

5

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Для авторизации на сайте гораздо проще использовать готовые решения - менеджеры паролей -
Например: KeePass,  RoboForm

6 (изменено: dimas1221, 2012-10-01 02:04:19)

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

yuriy2000 пишет:

Для авторизации на сайте гораздо проще использовать готовые решения - менеджеры паролей -
Например: KeePass,  RoboForm

Согласен. И все-таки, можно ли установить фокус в определенное поле ввода?
Или так: как получить идентификатор поля ввода? (с помощью AutoIt3 Window Spy и Winspector не получается).

7 (изменено: Malcev, 2012-10-01 02:47:31)

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Есть вариант в фаерфоксе.

f11::
send, {'}ссылке{tab}

8

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

В общем сам сейчас столкнулся с такой же проблемой, только с заливкой видео на ютуб.
Единственный вариант который пришел в голову посылать Ctrl+F, потом вбивать в поиск нужное слово-ориентир.
Затем искать цвет подцветки и соответственно его координатам посылать клик.

9

Re: AHK: Как в браузере поместить фокус в определенное поле ввода?

Для Firefox есть дополнение "Secure Login", которое позволяет одним (если для просматриваемого сайта у вас только одна пара "логин:пароль") нажатием на кнопку на панели (т.е. её положение вы можете сделать статичным) залогиниться на сайт используя сохранённые в браузере логин:пароль.
Если весь скрипт был задуман лишь для того, чтобы быстро залогиниться где-то - это дополнение либо целиком заменит вам этот скрипт, либо позволит использовать всего один ControlClick по координатам кнопки, чтобы залогиниться.