It's rare for a modern
web application not to have any frames or to be constrained to a single window.
WebDriver supports moving between named windows using the "switchTo"
method:
driver.switchTo ().window
("windowName");
All calls to driver will
now be interpreted as being directed to the particular window. But how do you
know the window's name? Take a look at the javascript or link that opened it:
<a href="somewhere.html"
target="windowName">Click here to open a new window</a>
Alternatively, you can
pass a "window handle" to the "switchTo().window()" method.
Knowing this, it's possible to iterate over every open window like so:
for (String handle :
driver.getWindowHandles()) {
driver.switchTo().window(handle);
}
driver.switchTo().window(handle);
}
You can also swing from
frame to frame (or into iframes):
driver.switchTo().frame("frameName");
It's possible to access
subframes by chaining switchTo() calls, and you can specify the frame by its
index too. That is:
driver.switchTo().frame("frameName")
.switchTo().frame(0)
.switchTo().frame("child");
.switchTo().frame(0)
.switchTo().frame("child");
would go to the frame
named "child" of the first subframe of the frame called
"frameName". All frames are evaluated as if from currently
switched to frame. To get back to the top level, call:
driver.switchTo().defaultContent();
0 Comments