使用.frame JSON Wire Protocol调用可以更深入地移动到DOM树中,但是我还没能找到一种向上移动DOM树的方法。
module.exports = {
"Enter and exit iframes in tree" : function(browser){
browser
//Currently focus is at top level.
.frame('iframeOne')
//Focus is now enters inner frame iframeTwo
.frame('iframeTwo')
//Attempt to move to frame directly
.frame('iframeOne')
//Selenium Error 'no such frame'
//Attempt to move focus up to iframeOne by searching from root.
.element('id', 'iframeOne', function(e){
browser.frame(e.value);
}
//Selenium Error 'no such element'
}
有一个JSON连线协议调用frame/parent,它能够向上移动到父元素,但它目前不被NightWatchJS支持。如有任何建议,我将不胜感激。
在当前的二进制版本中,您需要使用switchToDefaultContent
命令。在Java中,这表现为driver.switchTo().defaultContent()
。这将把你带到框架层次结构的顶端,你可以沿着树导航到你需要的框架。
"导航到父框架"连接协议是全新的。在写这篇文章的时候,按天的顺序。在撰写本文时,还没有发布的服务器实现能够理解该连接协议端点。Firefox驱动程序仅在最近一天左右才实现它。IE驱动的工作还没有开始。除了Java之外,它还没有在任何语言绑定中实现,而且只在源代码树中实现;它还没有以二进制形式发布。如果你有耐心,它将来会提供给你(没有可用的时间表,所以不要问),只是现在还没有。
我可以通过将焦点重新设置为顶层元素并再次向下爬行来解决这个问题。
.frame(null)
.frame('iframeOne')