I'm using selenium WebDriver syntax. I know, that in selenium server-based syntax, you can fire an javascript event by doing:
Selenium selenium = new DefaultSelenium("localhost", server.getPort(),
"*iexplore", "http://www.eviltester.com");
selenium.fireEvent("lteq30", "blur");
how do I do the same in an application, created with WebDriver (for example, FirefoxDriver)?
EventFiringWebDriver is a JavaClass , basically it is a wrapper around an arbitrary WebDriver instance which supports registering of WebDriverEventListener .
You an use selenium to do automated testing of web apps or websites, or just automate the web browser. It can automate both the desktop browser and the mobile browser. Selenium webdriver can execute Javascript.
Unfortunately the Selenium WebDriver designers explicitly decided not to include this functionality in Selenium 2.
It's a deliberate decision to not include this feature in WebDriver, since it's usually a hack to work around synthesized events not behaving properly. We'd rather eliminate this need by providing great support for native events, so we'll continue improving that going forward. A user would never fire a focus event, they would click the form control. That's what your tests should be doing as well.
With that said, you can execute any javascript code you want. Thus you should look into how to fire events with javascript. Take at look at this StackOverflow question for inspiration.
Then you can do something like this:
FirefoxDriver driver = new FirefoxDriver();
driver.ExecuteScript("[your fire event javascript code]");
I'm sure you could create a wrapper function to basically accomplish the same thing as fireEvent
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With