Sign in to follow this  
Followers 0
Vishal85

IE.au3 button click doesnt work

19 posts in this topic

Hi,

I am using IE UDF to automate a web application. I am not able to click on few buttons. Same code works for buttons of some other app but not for few of the buttons of the app i want to automate. Can you please suggest some options.

Please note AutoIt returns exit code as zero when i run below code so there doesnt seem to be any error with the code.

Here is the HTML Source of the BUTTON i want to click

<button title="Click to Order Requirements" class="littleButton" id="orderRequirements" accessKey="O" onmousedown="this.focus();orderRequirementsonclick()" type="button">

Here is the code which i tried,

$o_widgetObject = _IEGetObjById($oIE, "orderRequirements")

_IEAction($o_widgetObject, "click")

I also tried to get the button tags using below code...but didnt work.

$oButtonObjs = _IETagNameGetCollection($oIE, "button")

For $oButton In $oButtonObjs

$sbuttonTitle = $oButton.title

ConsoleWrite("Button Title - " & $sbuttonTitle & @CRLF)

If (StringInStr($sbuttonTitle, "Click to Order Requirements")) Then

_IEAction($oButton, "click")

ExitLoop

EndIf

Next

I am using Win XP and AutoIt v3.3.6.1

SOMEBODY PLEASE HELP!

Thanks!

Share this post


Link to post
Share on other sites



Please refer to the information i gave this user >>

Also when you post code please use the [autoit][/autoit] tags.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Thanks so much for quick reply! I will download the most recent version of AutoIt beta and try it again. Will post the result here based on my finding.

I will surely take care of the tag thing text time!

Share this post


Link to post
Share on other sites

I download the most recent beta version v3.3.7.23 (beta) but it didnt work. AutoIt doesnt click on any of the buttons on the application. It works fine for all other widgets. Please have a look at the HTML source for the button. Can you please help!

Share this post


Link to post
Share on other sites

For debugging, you should try your logic on other sites to see if your trouble is unique to this site or if you are, perhaps, using it incorrectly.

Looking at the html you posted, you may want to try adding _IEAction($oButton, "focus") prior to the click. Also, insure you are actually running the beta in your test by examining the output in the SciTe console that tells you the version used.

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Share this post


Link to post
Share on other sites

Regarding using beta version of IE UDF i have just used #include "C:\Program Files\AutoIt3\Beta\IncludeIE.au3" Is that fine? DO i need to do anything differently to use beta?

Regarding my code i was able to click on the button using below code. I tried by giving focus to the element and click on it but it didnt work. Below code works fine. I had to fire the mouse event explicitly.

Func _Buttonclick(ByRef $oIE, $s_fieldAttrib)

Local $o_widgetObject

$o_widgetObject = _IEGetObjById($oIE, $s_fieldAttrib)

$o_widgetObject.fireEvent("onmousedown")

$o_widgetObject.fireEvent("onmouseup")

$s_returnValue = _IEAction($o_widgetObject, "click")

_IELoadWait($oIE)

EndFunc

----------------

Dale - this is not related to the button issue here...but while using the IE beta i came across one issue. Problem looks to be with IETagNameGetCollection method which works fine in production version but not with the recent beta. I have posted the issue in the beta discussion forum. Can you please take a look.

Share this post


Link to post
Share on other sites

No, you are not using the beta correctly.

I made two recommendations that you either did not understand or chose to ignore: 1) test using an alternate site and 2) look at the SciTe console to see what version is being run.

You are using SciTe, right? If not, you are cheating yourself out of the best environment to run AutoIt. A version of SciTe customized for AutoIt is downloadable where you downloaded AutoIt. Typically you should have both the latest production version of AutoIt installed on your machine along with the latest beta. In SciTe, you then choose to run production with F5 and the beta with Alt+F5. The console section at the bottom SciTe gives you helpful information including the AutoIt version and lots of debugging messages from IE.au3). When you run productiona and beta in this way, you do not want to specify the full path to the includes so that the runtime can choose for you.

Get your setup done properly and then retest - including the topic you put in the beta discussion, since you are not apprently running the beta properly.

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Share this post


Link to post
Share on other sites

Thank you so much Dale! I didnt ignore your instructions...infact i was extremely happy to see your repsonse!

Thanks for the instructions for using BETA. I didnt know about it. I will now use beta that way.

I am using SciTE4AutoIt3 since day1!!!

I will test the code with beta again and let you know.

@MPH - Absolutely!! Who can know better than the creator!! I am very much impressed with the way IE UDF works. Its just fabulous. I used Selenium before but was not happy with the way it works on IE.

Share this post


Link to post
Share on other sites

Hi,

I tried Alt - F5 but it doesnt work. I can run script using production version by pressing F5 but nothing happens when i press Alt - F5. Can you please help. I have AutoIt beta installed and i can see it in C:Program FilesAUtoIt3Beta

Am i missing any setting to use beta?

Share this post


Link to post
Share on other sites

sadaphvi,

And how does this post differ from this one? Stick to the one thread please. :)

M23


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

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Other question i had was....how do i compile a script using beta version? Right now i just right click teh .au3 file and complie it to form a exe file to run. If i have to do the same thing but use beta instead how do i complie it?

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

How many threads do you want to run in parallel on this topic?

As stated .. stick to the other one and I will try to help.

Edited by Jos

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Sorry for that....We had a mention of beta topic in this thread so thought to post here....I will stick with one post!

Share this post


Link to post
Share on other sites

No, you are not using the beta correctly.

I made two recommendations that you either did not understand or chose to ignore: 1) test using an alternate site and 2) look at the SciTe console to see what version is being run.

You are using SciTe, right? If not, you are cheating yourself out of the best environment to run AutoIt. A version of SciTe customized for AutoIt is downloadable where you downloaded AutoIt. Typically you should have both the latest production version of AutoIt installed on your machine along with the latest beta. In SciTe, you then choose to run production with F5 and the beta with Alt+F5. The console section at the bottom SciTe gives you helpful information including the AutoIt version and lots of debugging messages from IE.au3). When you run productiona and beta in this way, you do not want to specify the full path to the includes so that the runtime can choose for you.

Get your setup done properly and then retest - including the topic you put in the beta discussion, since you are not apprently running the beta properly.

Dale

Hi Dale,

I am now using beta correctly. One of the AutoIt developer Jos helped me with that.

I executed my button code above with the beta version but just the click function doesnt work....As i mentioned above i was able to click on the buttons by firing the mouse events explicitly using below code,

Func _Buttonclick(ByRef $oIE, $s_fieldAttrib)

Local $o_widgetObject

$o_widgetObject = _IEGetObjById($oIE, $s_fieldAttrib)

$o_widgetObject.fireEvent("onmousedown")

$o_widgetObject.fireEvent("onmouseup")

_IEAction($o_widgetObject, "click")

_IELoadWait($oIE)

EndFunc

This function works fine if used with production version but with beta i am getting below error,

C:Documents and Settingsp2zoDesktopLHUSTestScriptLHUSPRPCSuperScript.au3 (242) : ==> The requested action with this object has failed.:

$o_widgetObject.fireEvent("onmouseup")

$o_widgetObject.fireEvent("onmouseup")^ ERROR

->15:26:03 AutoIT3.exe ended.rc:1

>Exit code: 1 Time: 32.835

As a side note....as you know i reported one issue regarding _IETagNameCollection function if used with BETA.....I dont see it anymore after i learned to use BETA correctly. So it was not any issue with IE UDF.

Share this post


Link to post
Share on other sites

Add _IEErrorHandlerRegister() to you code to get more detail on the COM error generated sent to the console.

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Share this post


Link to post
Share on other sites

#18 ·  Posted (edited)

when i use the custom error handler..I dont see any useful info in the COM error below....

Error - --> COM Error Encountered in LHUSPRPCFinalActionScript.au3

----> $ErrorScriptline = 207

----> $ErrorNumberHex = 80070005

----> $ErrorNumber = -2147024891

----> $ErrorWinDescription = Access is denied.

----> $ErrorDescription =

----> $ErrorSource =

----> $ErrorHelpFile =

----> $ErrorHelpContext = 0

----> $ErrorLastDllError = 0Error - --> COM Error Encountered in LHUSPRPCFinalActionScript.au3

----> $ErrorScriptline = 2431

----> $ErrorNumberHex = 80070005

----> $ErrorNumber = -2147024891

----> $ErrorWinDescription = Access is denied.

----> $ErrorDescription =

----> $ErrorSource =

----> $ErrorHelpFile =

----> $ErrorHelpContext = 0

----> $ErrorLastDllError = 0

Edited by Vishal85

Share this post


Link to post
Share on other sites

The telling line is:

$ErrorWinDescription = Access is denied.

I've never seen this in any other scenario than a cross-domain/frames situation. I don't know how this could work in the production version and not in the beta... you'll need to provide a stand-alone reproducer.

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

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  
Followers 0

  • Similar Content

    • Tippex
      By Tippex
      I'm having a problem with _IEBodyReadText() which is a function from the IE.au3 UDF include.
      My problem is that randomly it will crash my script with:
      Return SetError($_IESTATUS_Success, 0, $oObject.document.body.innerText) Return SetError($_IESTATUS_Success, 0, $oObject.document.body^ ERROR I don't know why the error isn't caught by __IEErrorHandlerRegister but looking at this function, I can see that there is a check done by IsObj($oObject) to ensure that the object "$oObject" exists but no check that it contains the property "innerText"
      ; #FUNCTION# ==================================================================================================================== ; Author ........: Dale Hohm ; =============================================================================================================================== Func _IEBodyReadText(ByRef $oObject) If Not IsObj($oObject) Then __IEConsoleWriteError("Error", "_IEBodyReadText", "$_IESTATUS_InvalidDataType") Return SetError($_IESTATUS_InvalidDataType, 1, 0) EndIf If Not __IEIsObjType($oObject, "browserdom") Then __IEConsoleWriteError("Error", "_IEBodyReadText", "$_IESTATUS_InvalidObjectType", "Expected document element") Return SetError($_IESTATUS_InvalidObjectType, 1, 0) EndIf ; Return SetError($_IESTATUS_Success, 0, $oObject.document.body.innerText) EndFunc ;==>_IEBodyReadText I'm struggling to find out how to test if "$oObject.document.body.innerText" exists before allowing the following Return statement to reference it with the assumption that it does exist (crashing my script when it doesn't).
      Any ideas please?
    • thoms
      By thoms
      Hello Forum,
      As said in the title, I'm searching a way to disable all tabstops in a GUI. My GUI includes 15 buttons and 3 edit controls.
      My questions:
      - is there a way to disable all tabstops at a time
      - is there a way to list all controls of a GUI and then disable tabstops one by one
      - or should I use the following line after each button creation:
      _WinAPI_SetWindowLong(GUICtrlGetHandle(-1), $GWL_STYLE, BitAND(_WinAPI_GetWindowLong(GUICtrlGetHandle(-1), $GWL_STYLE), BitNOT($WS_TABSTOP))) Thanks in advance for your valuable help!
      Thoms
      Edit: or maybe disable TAB key? I don't remember how to do!
    • AppSoftwareVld
      By AppSoftwareVld
      Hello,
       
      I need this for a project and I don't find a method for the next problem.
      I want when I click a button to create a variable ("$variable1") so if I press one more time to create one more ("$variable2") and create more and more how many times you press the button.
       
      Do you have an idea ? 
      Thank you for your attention !
    • rte7
      By rte7
      Hello. We work with the BMC Remedy site to manage incidents and would like to automate the processes of clicking through this button code:
      <a href="javascript:" class="btn btn3d menu" style="top:21; left:184; width:21; height:21;"> <img class="btnimg" src="../../../../resources/images/mt_sprites.gif" alt="menu category issue" title=""> </a> I use firefox with mozrepl and autoit with include FF.au3
      I need your help
      I read the topic https://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ but I could not run the code from the listed commands
      ...
      It is necessary to press the button and from the list of the menu of cahorsations to select the item = "zone of trust abonent"
      Screen # 1 http://joxi.ru/52aJK7bh4a7ypA or below.
      1) Press button
      <a href="javascript:" class="btn btn3d menu" style="top:21; left:184; width:21; height:21;"> <img class="btnimg" src="../../../../resources/images/mt_sprites.gif" alt="menu category issue" title=""> </a>
      2) After pressing the button, I need to choose in this menu of 4 items to select an item called "zone of trust abonent", Screen # 2 - http://joxi.ru/p27gwQKHo71VQ2
      html code table items
      <table class="MenuTable" cellpadding="0" cellspacing="0" style="width: 179px;"> <tbody class="MenuTableBody"> <tr class="MenuTableRow"> <td class="MenuEntryName" nowrap="">zone of trust abonent</td> <td class="MenuEntryNoSub" arvalue="zone of trust abonent"></td> </tr> <tr class="MenuTableRow"><td class="MenuEntryName" nowrap="">zone of trust operator</td> <td class="MenuEntryNoSub" arvalue="zone of trust operator"></td> </tr> <tr class="MenuTableRow"><td class="MenuEntryName" nowrap="">zone of trust third operator</td> <td class="MenuEntryNoSub" arvalue="zone of trust third operator"></td></tr> <tr class="MenuTableRow"><td class="MenuEntryNameHover" nowrap="">No settings</td> <td class="MenuEntryNoSubHover" arvalue="No settings"></td> </tr> </tbody> </table>
       
       
      More in detail, I choose from the menu item "zone of trust abonent" Screen # 3 - http://joxi.ru/GrqVq4ZIQEPW4m

       
      3) The choice is made, Screen # 4 http://joxi.ru/v297w6aC3PovLr
      <textarea class="text sr " wrap="off" id="arid_WIN_0_1000002488" cols="20" maxlen="60" style="top:21; left:0; width:179; height:21;" armenu="CFG:PRC:CategoryHPD-Res-T1-Q" mstyle="2" arautoc="1" arautocmb="1" arautocak="0" arautoctt="400" rows="1"> </textarea>
       
      It's all. I would be very grateful to you =) !!!!!!!!!!
      Here are more detailed codes in the attachment. 
      button1.txt
      menu - table.txt
      all.txt
    • Nareshm
      By Nareshm
      I create message box but i dont know how to add button action when i click it.

      Help for : Add script for Button : Left, Right, Right Finger
      example when i press Left finger button do Case $idNotepad
                      $iPID = WinActivate ( " :PS :: Version - 2.8.0.0  - [eFS Bill]")
                              ControlSend(" :DS  - eF :: Version - 2.8.0.0  - [eF Bill]", "", "[NAME:btnReset]", "{esc}")
                              ControlClick ( " :DS  - eF :: Version - 2.8.0.0  - [eF Bill]", "", "[NAME:txtrdNo]")
                              ControlSend(" :DS  - eF:: Version - 2.8.0.0  - [eF Bill]", "", "[NAME:txtrdNo]", "^v")
                              ControlSend(" :DS  - eF :: Version - 2.8.0.0  - [eF Bill]", "", "[NAME:txtrdNo]", "{enter}")
      How to add like above ?
                    
                                                                sorry for my bad english