I am a Selenium newbie …
As a JavaScript programmer, I think I want to handle JavaScript events in my Selenium-2 tests (JUnit). I am joining a team where all of the existing tests have “waitForSomethingToBeRendered” methods. Is there some way my Selenium tests can handle/listen for DOM (or custom) events?
Also, I’ve read on SO where developers use FireBug to write/debug Selenium-2 tests. How does this work? I don’t see FireBug in the browser launched by Selenium. Similarly, why does the following appear to have no effect? Am I trying something Selenium/JUnit does not support?
selenium().getEval("alert('hello');");
selenium().getEval("debugger;");
You don’t see the firebug extension because selenium opens a stripped firefox. I’m guessing the reason is it’s much faster. It’s possible (and quite easy in selenium-2) to add the plugin.
The alert doesn’t work because selenium-1 (I don’t know how selenium-2 handles them) swallows the alerts. There’s an api for handling alerts.
Plus, in selenium-1, the JS runs in a different window. So the equivalent of
document.getElementById()issel.getEval("selenium.browserbot.getCurrentWindow().document.getElementById()").Finally, I don’t know about events but you can wait for conditions:
sel.wait_for_condition().