uteotw Posted July 26, 2006 Share Posted July 26, 2006 (edited) Hello...I'm still learning a lot about AutoIt and IE.au3.This is a brilliant tool that helps my everyday at work and at home.Today I get confused by _IETagNameGetCollection and I need a little help.I have AutoIt beta 3.1.1.131 which includes IE.au3 2.0.5 (fresh install)I tried sample code below I found in the forum and in IE_builder.au3#include <IE.au3> $sImgDir = "c:\"; Please make certain this folder already exists (silent failure if not) $sWebPage = "http://www.autoitscript.com/forum/index.php?"; webpage with images $oIE = _IECreate() _IENavigate($oIE, $sWebPage) $oIMGs = _IETagNameGetCollection($oIE.document, "img") ; Loop through all IMG tags and save file to local directory using INetGet For $oIMG in $oIMGs $sImgUrl = $oIMG.src $sImgFileName = $oIMG.nameProp INetGet($sImgUrl, $sImgDir & $sImgFileName) NextBut I get error below returned in the SciTE console but I don't understand why.C:\test.au3(8,54) : ERROR: _IETagNameGetCollection() called with Const or expression on ByRef-param(s).$oIMGs = _IETagNameGetCollection($oIE.document, "img")~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^C:\PROGRA~1\AutoIt3\beta\Include\IE.au3(2381,73) : REF: definition of _IETagNameGetCollection().Func _IETagNameGetCollection(ByRef $o_object, $s_TagName, $i_index = -1)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^When I look at IE_Builder.au3 source, it seems to use _IETagNameGetCollection() in the same way without any problem.Could anyone explain this to me?FYI: I'm obviously able to get the images but using.$oImgs = _IEImgGetCollection ($oIE)Thxuteotw Edited July 26, 2006 by uteotw Link to comment Share on other sites More sharing options...
DaleHohm Posted July 26, 2006 Share Posted July 26, 2006 (edited) Actually everything is working as it should, but the example is not valid with the current AutoIt IE.au3 release.To improve resource utilization in the latest versions I changed the passing of the object variables to being byref so taht we did not create multiple copies of the variable with each function call.$oIE.document can no longer be passed to the function because it is not a static variable.The good news is that _IETagNameGetCollection has been enhanced so that you can simply pass in $oIE and it will convert it into a document reference for you - much simpler.You can also replace the _IETagNameGetCollection call with _IEImgGetCollection as you pointed out (that function did not exist when I wrote that example in the forum).Dale Edited July 26, 2006 by DaleHohm 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now