In my testscript I must waiting until document loading is finished. For these I use the method WaitForDocumentLoaded. But in firefox this will takes no effect - the method won't be wait for loading the document. In IE and Chrome it works fine and ranorex will waiting until the document is fully loaded and complete. For debugging I logged the state of the document (see the code below).

I use Ranorex version 5.2.1. I've tested the issue with Firefox version 24.6.0 ESR, 31.3.0 ESR and also 34. The result was always the same. My website is an internal tool, therefor I can't share a link or the like. The issue can be reproducing by testing an website with long response time (e.g. slow lan connection or so on).

The only time I've seen something like this is when the web page has late-loading scripts. That isn't a Ranorex issue. You would need to put more wait time in, either by adding delays, or by using WaitFor.Exists() with an XPath that contains "@state='complete'".

Waiting for /dom[@domain='www.mydom.com' and @state='complete'] isn't very helpful, because the dom is always available and the readystate of the webdocument in firefox is complete at this moment. I think there is a problem between an js-script and the firefox. So the js-script will set the complete-state to early/fast.

If you aren't navigating, then sure it will always be complete, once it gets completed, no matter which browser you are using. But, if you aren't navigating, then there is nothing to wait for.

And, the dom is most definitely not "always available" if you are actually navigating. This is how I've been doing it for a few years and it works perfectly for every site I've tested, with Chrome, IE 8/9/10/11 and Firefox. The state will change to something other than complete while the browser is loading the html and parsing any script elements. Sometimes it will incorrectly flip to complete and then load a script, which is what my example was catching. But this is an issue with the site, not Ranorex.

You could also try adding Validate.Exists() on an element that loads late and let Ranorex attempt to find it for the timeout specified. Just put this at the spot that you are having the problems and see if it helps.