codecamp

在窗口(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()


selenium 拖放
selenium2 弹出对话框
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }