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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…