Jump to content
Sign in to follow this  
Mercy

how can i click the tab in a web page using auto it

Recommended Posts

I inspect that Security tab in the webpage .I get the html element below:

<td tabindex="-1" align="center" class="infaTabsetSimpleTabSetTop" nowrap="true" valign="middle" onfocus="app_details_browse.$47()">Security</td>

If iam using the class name and trying to click the element. Iam getting "found" but cannot click as all the tab contains same class.

If iam using the onfocus attribute which is different for every tab and trying to click the element, the element cannot be found.

Local $oFound = ""
Local $oBtns = _IETagNameGetCollection($oIE, "td")

For $oBtn In $oBtns
    ;If String($oBtn.onfocus) ="app_details_browse.$47()" Then
    If String($oBtn.classname) = "infaTabsetSimpleTabSetTop" Then
     $oFound = $oBtn
   EndIf
Next

If IsObj($oFound) Then
    _IEAction ($oFound, "focus")
    _IEAction ($oFound, "click")
    MsgBox(16, "Success", "found")
Else
    MsgBox(16, "Failed", "Not found.")
EndIf

infaauto.png

Share this post


Link to post
Share on other sites

Added the _IEPropertyGet and got the innertext as "Security" in the message box. So im pointing the right object but it is not clicking the tab.

Local $iScreenX = _IEPropertyGet($oFound, "innertext")
 MsgBox(0,"",$iScreenX)
If IsObj($oFound) Then
    _IEAction ($oFound, "click")
    MsgBox(16, "Success", "found")

Trying with the below code .. it is going into the if statement and displaying the msgbox as clicked but it is not clicking.

If String($oFound.innertext) = "Security" Then
_IEAction ($oFound, "click")
MsgBox(16, "Success", "Clicked")
EndIF
Edited by Mercy

Share this post


Link to post
Share on other sites
6 hours ago, Mercy said:

Trying with the below code .. it is going into the if statement and displaying the msgbox as clicked but it is not clicking.

It's difficult to give additional suggestions when the only thing you've shown us is a screen shot. Have you logged into the site prior to running your code?

 

Share this post


Link to post
Share on other sites

Can you try the following looking at the actions of the td it only has an OnFocus action, nothing for OnClick, unless they have some other code which is being fired based upon the OnFocus and the Class Name.  Hope that makes sense.

If $oFound.innertext = "Security" Then
    _IEAction ($oFound, "focus")
    MsgBox(16, "Success", "Clicked")
EndIF

 

Share this post


Link to post
Share on other sites
8 hours ago, Subz said:

Can you try the following looking at the actions of the td it only has an OnFocus action, nothing for OnClick, unless they have some other code which is being fired based upon the OnFocus and the Class Name.  Hope that makes sense.

If $oFound.innertext = "Security" Then
    _IEAction ($oFound, "focus")
    MsgBox(16, "Success", "Clicked")
EndIF

 

Yes, tried with this also. the web page is not loading to the page which security tab has to load.

And when we do manually, we need to click that tab and not to focus.

Share this post


Link to post
Share on other sites

Maybe it needs to receive the Onfocus event before clicking. Try:

$oFound.FireEvent("OnFocus")

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Gowrisankar
      Dear members of the forum,
      I'm working on a project in which I have to use Image recognition technique. 
      Due to client restrictions, I couldn't use AutoIt for this project. 
      Is there a way to use this DLL "ImageSearchDLL.dll" (which is used to do image recognition steps in AutoIt) in VB.Net to achieve the same result? 
      I have used this DLL few years before and got good results. If there is a latest version of this DLL and if you can share it, that will be helpful too.
      Any guidance is deeply appreciated.
    • By learner123
      Hi All,
       
      I am new to this AUTO IT and I have created a script that will open an app,enter pin and copy the code generated to clipboard. My java code call this autoIT script and use the copied generated code from clipboard.
      This works fine when server  window is on focus. My server is an windows server. 
      But when I minimize or disconnect the server, the script opens the app.exe but doesn't copy any value to clipboard.  
      Can anyone help me on this 😐
       
      Run("C:\Program Files (x86)\RSA SecurID Software Token\SecurID.exe")
      Local $hWnd=WinWait("abc - RSA SecurID Token") ; waits until the window is the active window
      $hWin = WinGetHandle("abc - RSA SecurID Token");
      ControlSend($hWnd,"","","1111") ; simulates pressing the Home key
      ControlSend($hWnd,"","","{ENTER}");
      ControlSend($hWnd,"","","^c");
      Sleep(1000) ;
      ControlSend($hWnd,"","","^c");
       
    • By learner123
      Hi All,
      So I have created a small autoIT script to enter pin into a RSA token(app which generate new code every 30 second), and copy the generated code.
      I have a java application which requires this code so every time my java-code requires this RSA code, it runs the autoIT script and the copied generated code is then used in my java application. 
      I have deployed this code on a windows server and it works fine when I am logged in and the window is on focus, But as soon as I schedule task and disconnect the server (not logged out only disconnect), or even minimize the server window, the autoIT scripts fails and its not able to copy the value.
       
      Please find below the code for AUTOIT.
       
      WinActivate("rsa - RSA SecurID Token") ; activates the window that has old in the tilte bar
      WinWaitActive("rsa - RSA SecurID Token") ; waits until the window is the active window
      Send("1111") ; simulates pressing the Home key, enters password to get the code
      Send("{ENTER}") ; simulates pressing the Enter key
      Sleep(1000) ;
      Send("^c") ; simulates pressing the CTRL+c keys (copy)
       
      Also I saw some post regarding that WINACTIVE only works when window is active. But my below AUTO IT script to handle windows pop up  works perfectly fine when the server is disconnected. 
       
      Opt("WinTitleMatchMode", 1)
      WinWait("https://url","","10")
      WinWaitActive("https://url","","10")
      Sleep(2000)
      Send("userid")
      Sleep(1000)
      Send("{TAB}")
      Sleep(1000)
      Send("passwrd")
      Send("{TAB}")
      Sleep(500)
      Send("{ENTER}")
       
       
    • By JuanFelipe
      Hello gyus, I try to make a code to login in a web page in my job, buy i can’t understand why my form is blocked, this is my code: 
      #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <StringConstants.au3> #include <WindowsConstants.au3> #include <WinAPIFiles.au3> #include <FileConstants.au3> #include <File.au3> #include <Array.au3> #include <IE.au3> #include <Excel.au3> #include <GuiEdit.au3> #include <GuiStatusBar.au3> #include <DateTimeConstants.au3> #include <Date.au3> #Region ### START Koda GUI section ### Form=C:\noentry\koda_1.7.3.0\Forms\spoa.kxf $Form1 = GUICreate("Eva y Vehículos", 1200, 1000, 10, 10) $prueba = GUICtrlCreateButton("Prueba",10,990,50,20) ;VARIABLES ========================================================================================== $psi = "https://psi.policia.gov.co/PSI/Login.aspx?ReturnUrl=%2fPSI#no-back-button" $chequeVehiculos = "https://psi.policia.gov.co/PSI/frm_lista_chk.aspx" $evaluacionEva = "https://psi.policia.gov.co/PSI/eva_frmver.aspx" $oIE = ObjCreate("Shell.Explorer.2") $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 10, 1180, 980) ;GUICtrlSetState(-1, $GUI_DISABLE) GUISetState(@SW_SHOW) $oIE.navigate($psi) ;_IELoadWait($oIE) _InicioSesion() #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $prueba _InicioSesion() EndSwitch WEnd Func _InicioSesion() Local $username = _IEGetObjByName($oIE, "txtUsuario") Local $pass = _IEGetObjByName($oIE, "txtClave") Local $logina = _IEGetObjByName($oIE, "btnIngresar") $username.value="example" $pass.value="examplepass" _IEAction($logina, 'click') _IELoadWait($oIE) MsgBox(16,"","") EndFunc  
×
×
  • Create New...