A challenge to all you AutoHotKey masters:
Give us a function that will Find and Move the Cursor to an Input Field (E.g. LoginName) and, alternative
You can send text to an input field with the following code:
wb.document.getElementById("login-username").value := "myUserName"
Where wb
is the COM object, login-username
is the ID of the input field, and myUserName
is what you wish to input.
Insted of ID, you can also find the input field by name getElementsByName(...)
, tag name getElementsByTagName(...)
or class name getElementsByClassName(...)
. I've found this tutorial to be useful. Use Chrome or Firefox to find out how to identify the input field (rightclick and press "inspect element").
If you want to move the cursor to the input field, use
wb.document.getElementById("login-username").focus()
Here is a full example, using IE and the Stack Overflow login page:
; Create IE instance
wb := ComObjCreate("InternetExplorer.Application")
wb.Visible := True
wb.Navigate("https://stackoverflow.com/users/login")
; Wait for page to load:
While wb.Busy or wb.ReadyState != 4
Sleep, 100
; Press "Log in using Stack Exchange"
wb.document.getElementById("se-signup-legend").click()
While wb.Busy or wb.ReadyState != 4
Sleep, 100
; EITHER focus on the input field:
wb.document.getElementsByName("email")[0].focus()
; OR send text directly to the field:
wb.document.getElementsByName("email")[0].value := "my@email.com"
You can always use the {TAB} option. Open the website and hit the TAB key until you reach the input field and count how many times you hit it. Then do Send {TAB ##}. I used the below to put in First name, middle name, last name, and 2 other id into a web form. The variables were entered into a GUI form that was created.
Send {TAB 41}
Send %firstn%
Send {TAB}
Send %middle%
Send {TAB}
Send %lastn%
Send {TAB}
Send %deas%
Send {TAB}
Send %npis%
Send {TAB 3}
Send {N}
Send {TAB 2}
Send {ENTER}