Hi guys,

I asked the following on the webdriver forum:
https://groups.google.com/d/topic/webdriver/5WdDJsiyAzc/discussion

Kristian mailed me the following below which I find interesting.

WDYT? Since I'm not know a prototype expert could someone knowledgable tell me 
if this can be done? (I've found http://www.prototypejs.org/api/ajax/responders 
but not sure if it's enough for us).

Thanks
-Vincent

Begin forwarded message:

> From: krosenvold <[email protected]>
> Date: June 9, 2011 8:56:20 PM GMT+02:00
> To: Vincent Massol <[email protected]>
> Subject: Re: Re : Re: How to know if a page has been reloaded after some ajax 
> refresh
> 
> I have generally solved this problem by instrumenting
> the application javascript ever so slightly, by exploiting
> the following known facts:
> 
> Any immediate code executed by "onClick" handlers is
> guaranteed to be finished before control is returned to
> the client code.
> 
> Most popular frameworks allow you to add a global hook
> that allows you to increment a counter for every request
> that is started. If you add one hook that increments on
> start and one that increments on ajax request termination,
> your test can basically wait for a given javascript variable
> to become 0.
> 
> The nice thing about this is that if you do fancy visuals
> (sliding or fading stuff that you actually intend to click in your
> tests),
> you can intercept "onEffectStart" and "onEffectEnd" and
> increment/decrement the same counter.
> 
> And if you chain this properly, you can have a client-side added
> "onComplete" ajax handler that starts a sliding visual effect and
> the counter will be guaranteed to not reach 0 before the effect is
> finished.
> 
> So our page object base class has a waitForAllEffectsToFinish
> method that we actually surround to all calls to click. Our tests
> went to flaky to 100% rock solid after we did this.
> 
> Btw, you must use a counter - this won't work well enough with
> a boolean.
> 
> Kristian
> 
> 
> 
> 
> 

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to