kelso

JavaScript - How to click on specific value? (Virtual Keyboard in JS)

14 posts in this topic

#1 ·  Posted (edited)

Hello All,

I am trying to utilize a virtual keyboard website and click on specific values, the website is written and javascript and I am seeking your help-

JavaScript code:

<div id = "keyboard"></div>
  
 #each button is:
 #this is example for the letter D
  
  <input type="button" value="D" onclick="oKeyboard.doKeyHandle(this.value);" style="border:black 2px solid; padding:4px; margin:0px 2px 2px 0px; width:30px;font-weight:bold;font-family:arial; min-height:12px;">

 

Now my mission is "simple", click on the button for the letter "D" 5 times using an AutoIT script.

What functions can I use in AutoIT to do so?

 

Thank you!

 

Edited by kelso

Share this post


Link to post
Share on other sites



You can use the functions of the IE.au3. I think

_IE_Example

is a good startpoint for beginning.

Share this post


Link to post
Share on other sites
17 minutes ago, AutoBert said:

You can use the functions of the IE.au3. I think

_IE_Example

is a good startpoint for beginning.

Thank You AutoBert,

I reviewed the examples and went through the documentation, but clearly there is something simple I am missing. I understand how to take the right elements from the code, I just don't understand which AutoIt functions can help in my case.

 

Any suggestions?

Share this post


Link to post
Share on other sites

ping, anyone?

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

try this:

Func _IE_ClickInInput_D(ByRef $oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE,'input')
    If @error then Return SetError(@error, @extended, 0)

    For $oInput_enum In $oInput_coll
        If $oInput_enum.value="D" And $oInput_enum.onclick = "oKeyboard.doKeyHandle(this.value);" Then 
            $oInput_enum.click()
            If @error then Return SetError($_IESTATUS_ComError, @error, 0)
            
            Return SetError($_IESTATUS_Success, 0, 1)
        EndIf
    Next
    Return SetError($_IESTATUS_NoMatch, 2,0)
EndFunc

 

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

Hi @kelso

Two questions:

Can you share the website that has this virtual keyboard?

Did you try to click the input element (_IEAction($oElement, "click"))?

Share this post


Link to post
Share on other sites
5 minutes ago, mLipok said:

try this:

Func _IE_ClickInInput_D(ByRef $oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE,'input')
    If @error then Return SetError(@error, @extended, 0)

    For $oInput_enum In $oInput_coll
        If $oInput_enum.onclick = "oKeyboard.doKeyHandle(this.value);" Then 
            $oInput_enum.click()
            Return SetError($_IESTATUS_Success, 0, 1)
        EndIf
    Next
    Return SetError($_IESTATUS_NoMatch, 2,0)
EndFunc

 

didn't work, I don't thin we specify the value "d" here.

5 minutes ago, MichaelHB said:

Hi @kelso

Two questions:

Can you share the website that has this virtual keyboard?

Did you try to click the input element (_IEAction($oElement, "click"))?

I have, but failed miserably.

here is the link:

http://www.jamesburt.com/Demos/Javascript/VirtualKeyboard/

 

Share this post


Link to post
Share on other sites
8 minutes ago, kelso said:

didn't work, I don't thin we specify the value "d" here.

Refresh your browser, and read again my example.

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites
3 minutes ago, mLipok said:

Refresh your browser, and read again my example.

 

here is what I tried, still doesn't work and doesn't show an error

 

Local $ie = _IECreate("http://www.jamesburt.com/Demos/Javascript/VirtualKeyboard/")
sleep(5000)
Func _IE_ClickInInput_D(ByRef $oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE,'input')
    If @error then Return SetError(@error, @extended, 0)

    For $oInput_enum In $oInput_coll
        If $oInput_enum.value="D" And $oInput_enum.onclick = "oKeyboard.doKeyHandle(this.value);" Then
            $oInput_enum.click()
            If @error then Return SetError($_IESTATUS_ComError, @error, 0)

            Return SetError($_IESTATUS_Success, 0, 1)
        EndIf
    Next
    Return SetError($_IESTATUS_NoMatch, 2,0)
EndFunc

 

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

Tryt this snippet:

#include <IE.au3>
#include <MsgBoxConstants.au3>


_Example()
Func _Example()
    Local $oIE = _IEAttach('http://www.jamesburt.com/Demos/Javascript/VirtualKeyboard/', 'url')
    _IE_ClickInInput_D($oIE)
    If @error Then MsgBox($MB_ICONERROR, 'ClickInput D', '@error = ' & @error & @CRLF & '@extended = ' & @extended)

EndFunc


Func _IE_ClickInInput_D(ByRef $oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE,'input')
    If @error then Return SetError(@error, @extended, 0)

    For $oInput_enum In $oInput_coll
        ConsoleWrite('! ' & $oInput_enum.onclick & @CRLF)
        If $oInput_enum.value="D" And StringInStr($oInput_enum.outerhtml, "oKeyboard.doKeyHandle(this.value);") Then
            $oInput_enum.click()
            If @error then Return SetError(@error, @extended, 0)

            Return SetError($_IESTATUS_Success, 0, 1)
        EndIf
    Next
    Return SetError($_IESTATUS_NoMatch, 2,0)
EndFunc

ConsoleWrite shows why previous attempt wont work.

mLipok

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites
7 minutes ago, mLipok said:

Tryt this snippet:

#include <IE.au3>
#include <MsgBoxConstants.au3>


_Example()
Func _Example()
    Local $oIE = _IEAttach('http://www.jamesburt.com/Demos/Javascript/VirtualKeyboard/', 'url')
    _IE_ClickInInput_D($oIE)
    If @error Then MsgBox($MB_ICONERROR, 'ClickInput D', '@error = ' & @error & @CRLF & '@extended = ' & @extended)

EndFunc


Func _IE_ClickInInput_D(ByRef $oIE)
    Local $oInput_coll = _IETagNameGetCollection($oIE,'input')
    If @error then Return SetError(@error, @extended, 0)

    For $oInput_enum In $oInput_coll
        ConsoleWrite('! ' & $oInput_enum.onclick & @CRLF)
        If $oInput_enum.value="D" And StringInStr($oInput_enum.outerhtml, "oKeyboard.doKeyHandle(this.value);") Then
            $oInput_enum.click()
            If @error then Return SetError(@error, @extended, 0)

            Return SetError($_IESTATUS_Success, 0, 1)
        EndIf
    Next
    Return SetError($_IESTATUS_NoMatch, 2,0)
EndFunc

ConsoleWrite shows why previous attempt wont work.

mLipok

didn't gave an error beside "!" with the 'url', when I removed the 'url' it gave the following error:

 

o9G0RFw.png

.

LpB0y2N.png

 

 

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

18 minutes ago, kelso said:

didn't gave an error beside "!" with the 'url',

??
Show me ConsoleOutput from my snippet (without any changes) .
NOTE: this url should be already opened in IE .

 

Edited by mLipok

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

my bad. it worked!

you are the man!!!

Share this post


Link to post
Share on other sites

I'm glad it works as intended :)

mLipok


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now