Switching Frames in WebDriver

In WebDriver there is no direct replacement of the Selenium IDE command selectFrame, however there is a fairly straightforward approximation by using the driver.SwitchTo() method. This method allows you to change the focus to different windows, alerts and frames, but we will be focussing on frames in this post. Below are examples on how to switch to a frame by using its ID, its parent frame, or the top level.

To select the frame by specifying its ID, replace [code] selectFrame | frmFrameID | [/code]
IWebElement frmDashboard = null;
frmDashboard = driver.FindElement(By.Id(“frmDashboard”));

To select the top level frame, replace [code] selectFrame | relative=top | [/code] with the following line
[code] driver.SwitchTo().DefaultContent();[/code]

And finally to select a frame by the current frame’s parent frame, replace [code]selectFrame | relative=up | [/code] with the following line
[code] driver.SwitchTo().ParentFrame();[/code]

In later posts I will expand on the other actions available to us with driver.SwitchTo();

Leave a Reply

Your email address will not be published. Required fields are marked *