Find and fill an input field with AutoHotKey

前端 未结 2 994
别跟我提以往
别跟我提以往 2021-01-06 03:15

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

相关标签:
2条回答
  • 2021-01-06 03:19

    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"
    
    0 讨论(0)
  • 2021-01-06 03:39

    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}
    
    0 讨论(0)
提交回复
热议问题