Jump to content

IE Functions throw Error after many calls in a while loop


ixam
 Share

Recommended Posts

Hi I have a script that continously checks all tabs open in IE, checks if its on a specific site, that has a specific form open and after some time presses a button on that form. It also works if this specific site is open multiple times, via an array. Anyway here is the code:

EDIT: Removed my code as I narrowed the problem down to the _IEFrameGetObjByName Function.T his code returns the same error with any ie site open, can someone else try if this works for them?:

#include <ie.au3>


Local $oIE = _IEAttach("","instance")

While 1
    Local $oFrame = _IEFrameGetObjByName($oIE,"anything")

    WEnd

I dont have much experience with AutoIT, so the code could probably be improved. But it works as intended up until some point the IE funcitons throw these "random" errors:

Without _IEErrorHandlerRegister

Spoiler

"C:\Program Files (x86)\AutoIt3\Include\ie.au3" (1811) : ==> The requested action with this object has failed.:
Return SetError($_IESTATUS_Success, $oTemp.GetElementsByTagName($sTagName).length, $oTemp.GetElementsByTagName($sTagName))
Return SetError($_IESTATUS_Success, $oTemp^ ERROR
->12:16:20 AutoIt3.exe ended.rc:1

With _IEErrorHandlerRegister

Spoiler

--> IE.au3 T3.0-2 Warning from function _IEAttach, $_IESTATUS_NoMatch
\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (713) : ==> COM Error intercepted !
    err.number is:         0x000000A9
    err.windescription:    Variable must be of type 'Object'.
    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     713
    err.retcode is:     0x00000000

--> IE.au3 T3.0-2 Warning from function _IEFrameGetObjByName, $_IESTATUS_NoMatch (No Frames found)
--> IE.au3 T3.0-2 Error from function _IEFormGetObjByName, $_IESTATUS_InvalidDataType
\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (713) : ==> COM Error intercepted !
    err.number is:         0x000000A9
    err.windescription:    Variable must be of type 'Object'.
    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     713
    err.retcode is:     0x00000000

--> IE.au3 T3.0-2 Warning from function _IEFrameGetObjByName, $_IESTATUS_NoMatch (No Frames found)
--> IE.au3 T3.0-2 Error from function _IEFormGetObjByName, $_IESTATUS_InvalidDataType
\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (1811) : ==> COM Error intercepted !
    err.number is:         0x80020008
    err.windescription:    Falscher Variablentyp.

    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     1811
    err.retcode is:     0x00000000

\\home$\Desktop\Auoit\Auftrag Timer\Auftrag_Timer.au3 (713) : ==> COM Error intercepted !
    err.number is:         0x000000A9
    err.windescription:    Variable must be of type 'Object'.
    err.description is:     
    err.source is:         
    err.helpfile is:     
    err.helpcontext is:     
    err.lastdllerror is:     0
    err.scriptline is:     713
    err.retcode is:     0x00000000

--> IE.au3 T3.0-2 Warning from function _IEFrameGetObjByName, $_IESTATUS_NoMatch (No Frames found)
--> IE.au3 T3.0-2 Error from function _IEFormGetObjByName, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEAttach, $_IESTATUS_InvalidValue ($iInstance < 1)
--> IE.au3 T3.0-2 Error from function _IEPropertyGet, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Warning from function _IEAttach, $_IESTATUS_NoMatch
!>12:23:13 AutoIt3.exe ended.rc:-1073741819
+>12:23:13 AutoIt3Wrapper Finished.

In those example I have the sites open but not the forms and dont touch them for the time the script runs, but regardless what I do it crashes after some seemingly random time.

I found something  similar, but that was a bug that is supposed to be already fixed: https://www.autoitscript.com/trac/autoit/ticket/2541

I have no idea why this happens it seems like its a bug, I tried some different stuff like to "reattach" the IE Objects when it finds the new tabs with this line:

$Tabs[$ArrayIndex] = $Tab

But with no success, so it seems this is a issue with the IE Functions that have some kind of leak or something after some time. 

Also I changed some code and error message due to privacy and my AutoIt version is v3.3.14.2, my Internet Explorer Version is 11.0.30 and I use Windows 7  Version  6.1.7601 Service Pack 1 Build 7601.

Anyone got any idea or is it a bug?
 

Edited by ixam
Link to comment
Share on other sites

Can you provide a working example? Without that, it is difficult for us to guess at the cause of your issue.

Quote

Also I changed some code and error message due to privacy

Maybe I'm just suspicious by nature, but this type of statement sets off warning bells. Are you sure that your usage doesn't violate the forum rules? If not, what type of websites are you trying to interact with?

Link to comment
Share on other sites

1 hour ago, Danp2 said:

Can you provide a working example? Without that, it is difficult for us to guess at the cause of your issue.

Maybe I'm just suspicious by nature, but this type of statement sets off warning bells. Are you sure that your usage doesn't violate the forum rules? If not, what type of websites are you trying to interact with?

Its just some folders that contain my name and stuff, I literally just want to press a button on a site, what is suspicous about that lol

Anyway I narrowed it down you dont even need my code anymore. Its the _IEFrameGetObjByName Function that throws an error after continious calls. Run this code on any site:

#include <ie.au3>


Local $oIE = _IEAttach("","instance")

While 1

    Local $oFrame = _IEFrameGetObjByName($oIE,"anything")

    WEnd

It will throw the same error that I get with my script after some time:

Spoiler

"C:\Program Files (x86)\AutoIt3\Include\ie.au3" (1811) : ==> The requested action with this object has failed.:
Return SetError($_IESTATUS_Success, $oTemp.GetElementsByTagName($sTagName).length, $oTemp.GetElementsByTagName($sTagName))
Return SetError($_IESTATUS_Success, $oTemp^ ERROR
->13:45:54 AutoIt3.exe ended.rc:1

This seems definitely like a bug. Maybe there is a memory leak in the function? Anyone else try this please (you have to have one tab on IE open), hopefully its not just me that gets this error.

 

Edit: Lol now the edit button appeared it wasnt there before...

Edited by ixam
Link to comment
Share on other sites

10 hours ago, ixam said:

definitely like a bug. Maybe there is a memory leak in the function? Anyone else try this please (you have to have one tab on IE open), hopefully its not just me that gets this error.

 

Did you read my reply/edit or is this not a short runable script ?

#include <ie.au3>


Local $oIE = _IEAttach("","instance")

While 1

    Local $oFrame = _IEFrameGetObjByName($oIE,"anything")

    WEnd

Did you try this? If not please do, so I can confirm its not just me that gets an error.

Edited by ixam
Link to comment
Share on other sites

This script is runable but without any sence:

  1. there a errors, but you don't handle them.    
  2. the cpu will overhead, because you aren't using any sleep in the never ending loop. So there are hardware caused error possible.

If you don't know how to use _IEFrameGetObjByName, hav a look in helpfile and run also the example.

Edited by AutoBert
Link to comment
Share on other sites

@ixam

Give some info

  • AutoIt Version 
  • Windows Version
  • IE Version


and read this tickets:

https://www.autoitscript.com/trac/autoit/ticket/3167
https://www.autoitscript.com/trac/autoit/ticket/3097

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor 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 APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

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 * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

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) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

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 *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"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: 2023-04-24

Link to comment
Share on other sites

1 hour ago, mLipok said:

@ixam

Give some info

  • AutoIt Version 
  • Windows Version
  • IE Version


and read this tickets:

https://www.autoitscript.com/trac/autoit/ticket/3167
https://www.autoitscript.com/trac/autoit/ticket/3097

 

Please read my posts:

On 8.9.2016 at 0:37 PM, ixam said:

... and my AutoIt version is v3.3.14.2, my Internet Explorer Version is 11.0.30 and I use Windows 7  64 bit Version  6.1.7601 Service Pack 1 Build 7601.

Anyway the second ticket looks very similar, but that was opened 14 months ago, so I is this ever going to be fixed?

 

 

1 hour ago, AutoBert said:

This script is runable but without any sence:

  1. there a errors, but you don't handle them.    
  2. the cpu will overhead, because you aren't using any sleep in the never ending loop. So there are hardware caused error possible.

If you don't know how to use _IEFrameGetObjByName, hav a look in helpfile and run also the example.

Obviously the script doesnt make sense, its just an example. I know there are errors because _IEFrameGetObjByName never finds anything, but those dont matter, does the script ever stop for you by itself, which it shouldnt but it does for me? Btw I also get a fatal error if I use Sleep, its just comes slower.

Link to comment
Share on other sites

8 minutes ago, ixam said:

Please read my posts:

I overlooked this.

8 minutes ago, ixam said:

that was opened 14 months ago, so I is this ever going to be fixed?

I hope so.

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor 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 APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

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 * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

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) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

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 *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"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: 2023-04-24

Link to comment
Share on other sites

14 minutes ago, ixam said:

Obviously the script doesnt make sense, its just an example.

Than it's a example without sence, there is no need to search the same frame >1, if it isn't found 1. time it never will be found.

But test this (also nonsence script):

#include <ie.au3>


Local $oIE = _IE_Example("iframe")
Local $oFrame
Local $i=0
Local $tdStart=TimerInit()
While 1
    Local $oFrame = _IEFrameGetObjByName($oIE, "iFrameTwo")
    $i+=1
    If Not Mod($i,10) Then  Sleep(10)
    If $i>10000 Then ExitLoop
WEnd
ConsoleWrite(TimerDiff($tdStart)&@TAB&$i& ' Times looped'&@CRLF)
_IEQuit($oIE)

if you don't close IE while running it wouldn't crash or throw any error.

Link to comment
Share on other sites

16 minutes ago, AutoBert said:

Than it's a example without sence, there is no need to search the same frame >1, if it isn't found 1. time it never will be found.

But test this (also nonsence script):

Thanks for that script, but unfortunately I cant test that for another week as I´m away from home. I´m on my phone right now, but I´d suspect it will throw the same error, because it essentially does the same thing (If you didnt understand my script crashed after 10 seconds, it also crashed with sleep it just took longer). Also it does make sense to search for the frame more then one time, because you know you can actually navigate the site.

Anyway this ticket from mLipok https://www.autoitscript.com/trac/autoit/ticket/3097 seems to be basically the same thing. Its 14 months old so I can only hope it will ever get fixed. Thanks for your help regardless.

Link to comment
Share on other sites

1 hour ago, ixam said:

Please read my posts:

On 8.09.2016 at 0:37 PM, ixam said:

... and my AutoIt version is v3.3.14.2, my Internet Explorer Version is 11.0.30 and I use Windows 7  64 bit Version  6.1.7601 Service Pack 1 Build 7601.

 

 

Please make your tests on Winodws 10 with latest upgrades and latest IE version.
This would be interesting.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor 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 APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

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 * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

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) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

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 *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"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: 2023-04-24

Link to comment
Share on other sites

I'm having the same problem- I use _IEQuit in the loop as I thought this would free up the resources used before it is called again, but watching the running processes in Task Manager I can see the amount of memory used by the IE processes increases steadily until no more instances of IE can be created and script crashes.

Link to comment
Share on other sites

I was able to work around the problem by re-using the same instances of IE by using _IENavigate instead of _IEQuit and then _IECreate at the new URL. So now the memory leak problem seems to have been solved (if you start IE in non-visible mode then be sure the IE instances have been terminated in Task Manager, if not end the process before restarting the script).

Now I have the Recusion level has been exceeded error :lol:

Link to comment
Share on other sites

@AutoBert @Dent @mLipok

I have made further progress in narrowing the bug down. It is still the function _IEFrameGetObjByName, that causes the script to crash after to many calls in a while loop. Here the example script from AutoBert to test it:

#include <ie.au3>


Local $oIE = _IE_Example("iframe")
Local $oFrame
Local $i=0
Local $tdStart=TimerInit()
While 1
    Local $oFrame = _IEFrameGetObjByName($oIE, "iFrameTwo")
    $i+=1
    If Not Mod($i,10) Then  Sleep(10)
    If $i>10000 Then ExitLoop
WEnd
ConsoleWrite(TimerDiff($tdStart)&@TAB&$i& ' Times looped'&@CRLF)
_IEQuit($oIE)

So I tested this on two Windows 7 PCs and one Windows 10 PC (all with up to date IEs) and the script crashes on both W7s, but works on the W10. So it might be a problem with Windows 7, but I cant say for sure.

I also discovered that this problem only occurs with newest version of AutoIt v3.3.14.2, I was able to run the script no problem compiled with AutoIt Version v3.3.12.0 on the Windows 7 PCs, so this seems to be the work around for the time being.

Anyway is anyone able to test and confirm my findings? Also should I make a ticket for this, the last AutoIt update was almost exactly 1 year ago, are the developers active anymore?

Edited by ixam
Link to comment
Share on other sites

3 minutes ago, ixam said:

Anyway is anyone able to test and confirm my findings? Also should I make a ticket for this, the last AutoIt update was almost exactly 1 year ago, are the developers active anymore?

I have no win7. I suggest test with newest beta on win7. Change this 

If Not Mod($i,10) Then  Sleep(10)
;to
If Not Mod($i,10) Then  
    ConsoleWrite($i&@CRLF)
    Sleep(10)
EndIf

and if also crashes you should make a ticket.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...