选择嵌套的iframe - selenium / javascript / node-js

时间:2013-12-05 13:33:11

标签: javascript node.js iframe selenium

我想在node-js中使用selenium webdriver模块在iframe中选择嵌套的iframe。

例如:

<iframe id="firstframe">
   <div id="firstdiv"></div>
   <iframe id="secondframe">
     <div id="seconddiv"></div>
   </iframe>
</iframe>

用于node-js部分:

driver.switchTo().defaultContent();
driver.switchTo().frame("firstframe");   // --> works
driver.switchTo().frame("secondframe");  // --> NoSuchFrameError


iframes = driver.findElements(webdriver.By.tagName('iframe')).then(function(elements){
            console.log(elements.length); // --> if I put this code before the switch to first frame output: 1, if I put it after output: 0)
            });

我尝试使用索引编号,但这也失败了。

编辑:

好的,我想通了,但我的答案被用户@casparOne删除了一些原因。如果有人仍然想知道这里的问题是什么:

我上面的代码有效,只是不在本地。 Chrome的安全设置拒绝在本地文件的iframe中更深入。因此它甚至没有显示iframe的源代码。

1 个答案:

答案 0 :(得分:4)

我曾经做过几次这样的事情。尝试在swtich帧之间暂停1秒钟。 (有时候)你需要给Selenium(或浏览器)足够的时间来加载帧DOM,然后再尝试另一个开关。