在窗口(window)和框架(frame)间移动
现在的网页应用里没有页面框架或者只用一个窗口就包含了所有内容的已经很少了。WebDriver
支持在指定的窗口间移动,方法为switch_to_window
:
driver.switch_to_window("windowName")
现在所有的driver
的调用都会指向这个给定的窗口,但是我们怎么知道窗口的名字是什么呢?可以看一看打开这个窗口的javascript
脚本或者link
链接:
<a href="somewhere.html" target="windowName">Click here to open a new window</a>
或者,你可以传一个window handle
给switch_to_window()
方法,它就可以像这样迭代每一个打开的窗口:
for handle in driver.window_handles:
driver.switch_to_window(handle)
你也可以在框架和框架之间切换 (或者进入框架):
driver.switch_to_frame("frameName")
我们可以用.
分离路径来访问子框架,并且可以指定它的索引:
driver.switch_to_frame("frameName.0.child")
这会跳到'frameName'
框架内第一个名为'child'
的子框架。所有框架的计算都是从顶层开始的。
一旦我们操作完了框架,我们可以通过下面的操作回到父框架:
driver.switch_to_default_content()