Jump to content

Ie.au3 and ff.au3 frame enter Problem


LeLufs
 Share

Recommended Posts

Hello,

I used the most of time ff.au3 but since the update it won't work to work in frames.

And this happened with ie since a new update too.

Old versions are still working, with ff i get a cmd error

And with Ie i got this: Return SetError($_IESTATUS_Success, $oTemp.GetElementsByTagName($sTagName).length, $oTemp.GetElementsByTagName($sTagName))

Return SetError($_IESTATUS_Success, $oTemp^ ERROR

(I Can't click on links in a frame for example)

I Hope for help to resolve this problem!

Edited by LeLufs
Link to comment
Share on other sites

Hi Lelufs,

Welcome to the forum!

You will likely get better help if you can provide additional information. Such as:

  • Autoit version
  • IE / FF versions
  • OS details
  • etc

You mentioned that this used to work before an update, but it's not clear what changed. Was it an OS update, Autoit update, etc. Post a short script that demonstrates the issue.

Regards,

DanP

Link to comment
Share on other sites

For example if i use on ff:

_FFFrameEnter(1)

_FFLinkClick("example","Name")

It doesn't work, i got a cmd error that he can't found it on xpath or something,

But i Can read the Sourcecode in that frame and befor this update on ff it Works

Same in ie with _ieframegetobjectbyname oder Collect all frames it Shows me a error

That a variable ist Not true and this error in the First post

Link to comment
Share on other sites

Okay, the website is Freewar.com

and it is a browsergame based on frames.

the registration is easy or i can give you a test account.

Here a Code to read my Lifepoints and heal (Read works but it does not click on the heal link)

Func Heilen()
   _FFFrameEnter(6)
   $sHtmlHeal = _FFReadhtml("body")
   Global $Lp = StringRegExp($sHtmlHeal,'<span class="healthok"><b>(.+?)</b>',3)
   Global $ItemID = StringRegExp($sHtmlHeal,'Nr\. <b>3</b>: <a href="item\.php\?action=activate&amp;act_item_id=(.+?)"',3)
;~    _ArrayDisplay($Lp)
;~    _ArrayDisplay($ItemID)
   _FFFrameLeave()
if $Lebenspunkte[0] = 646 then
      _FFFrameEnter(6)
      _FFLinkClick('item.php?action=activate&act_item_id='&$ItemID[0])
      _FFFrameLeave()
EndIf
EndFunc

By clicking the Link i got this Error:

__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: -3
_FFClick ==> No match: $sElement: FFau3.xpath

I can't click anything in a frame

Link to comment
Share on other sites

I spent a couple hours trying to understand how actually things work in IE.au3 and maybe find some workaround (that failed however), but I've managed to make some interesting observations. To name a few: internal IE.au3 function _IEIsFrameSet(), which is called from _IEFrameGetObjByName() whose $o_object is IEBrowser, is now unable to detect whether a main document is a frameset. It receives IEBrowser.document.parentWindow object and tries to read ".document.body.tagName" from it, but now this returns an empty string. Before IE update IEBrowser.document.parentWindow.document.body.tagName returned string "frameset" for the site I mentioned above. However we can make it read string "frameset" if we request IEBrowser.document.body.tagName instead of IEBrowser.document.parentWindow.document.body.tagName.
Next I've tried to make some (a lot, actually) ugly hacks and replacements in IE.au3 I can't remember, after which I was even able to get required frame object of type HTMLWindow2. However I didn't find a way to read its document contents. It looked like there're no properties like document, documentContents or whatever in it. I don't know how to get all available properties of a COM object (if its possible at all) so after messing around for some time I've gave up.

Edited by rand256
Link to comment
Share on other sites

to be able to give help people need more information like au3inf output

 

What information exactly do you need? What is "au3inf" thing also? I could not find anything about it. If you mean au3info.exe tool then I don't know what kind of output from it you are asking for...

 

Meanwhile I've created a very simple example page to demostrate the issue. Here it is: http://erinome.net/autoit/frameset.html

It works exactly the same as the page I linked above but not requires to switch compability view modes in IE or anything like that. Just clean and simple frameset with a checkbox in one of the frames.

To test it yourself make sure you have IE11 browser with all security updates installed to date. I suspect one of them causing the issue which makes autoit unable to work with frames anymore.

Link to comment
Share on other sites

Go to Control Panel / Programs and Features / View installed updates.

Select KB3025390 there and uninstall it. Don't forget to forbid the system reinstalling it again.

Regarding whether it is temporary solution or not - I'm not quiet sure that this change in IE behavior was made intentionally by Microsoft. Maybe that's just an error in that particular update which will be fixed later on. Have you read the description for KB3025390? There's nothing mentioned about changes in frame scripting policies. Nothing about frames at all. So our current unability to read frame contents may be just a temporary error in IE accidently caused by that update.

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...