I’m really surprised I can’t find references on the internet to testing for element focus using Selenium Webdriver.
I’m wanting to check when when a form submission is attempted with a mandatory field missed, focus is moved to the empty field. But I cannot see any way to do this using the WebDriver API.
I will be able to find the focused element using a JavascriptExecutor. But reading the FAQ makes me think there must be some way to perform the check using the driver itself.
Thanks for any help.
driver.switchTo().activeElement()will return the currently focusedWebElement. Equality is well defined forWebElement, so you can callelement.equals(driver.switchTo().activeElement()).Calling the slightly misleading named
driver.switchTo().activeElement()does not in fact switch focus, neither doesdriver.findElement(), so you do not need toswitchTo().defaultContent()after; in fact, doing so would probably blur the current element.