In Selenium how do I find the "Current" object
in python:
element = driver.switch_to.active_element
In Selenium 2.0, if you are using WebDriver
to drive the tests in the browser, you can use the WebDriver.TargetLocator
class to get the element in focus, in a window/frame:
WebDriver driver = ... // initialize the driver
WebElement currentElement = driver.switchTo().activeElement();
If no element is in focus, the active element would turn out to be the body
of the document being displayed, which might be the case when you launch a new page, for instance. When you invoke methods like click
, sendKeys
etc. you'll find the WebElement
returned by the above invocation will always represent the element in focus.
This was tested using FirefoxDriver
, and I would suspect that the same would be true of other drivers, except for the HtmlUnitDriver
and similar drivers that do not use a full-fledged browser under the hood.
In Ruby/Capybara:
page.driver.browser.switch_to.active_element
Note that this returns a Selenium::WebDriver::Element
not a Capybara::Node::Element
.
Don't know of a more straightforward way than accessing document.activeElement
How do I test which element has the focus in Selenium RC?