Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test if an element is focused using Selenium Webdriver

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.

like image 932
SamStephens Avatar asked Sep 26 '11 08:09

SamStephens


1 Answers

driver.switchTo().activeElement() will return the currently focused WebElement. Equality is well defined for WebElement, so you can call element.equals(driver.switchTo().activeElement()).

Calling the slightly misleading named driver.switchTo().activeElement() does not in fact switch focus, neither does driver.findElement(), so you do not need to switchTo().defaultContent() after; in fact, doing so would probably blur the current element.

like image 169
Daniel Wagner-Hall Avatar answered Sep 18 '22 20:09

Daniel Wagner-Hall