我想用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的源代码。
发布于 2013-12-05 23:43:12
我以前做过几次这样的事情。尝试在swtich帧之间放置1秒的暂停。(有时)您需要给Selenium (或浏览器)足够的时间,以便在您尝试另一个切换之前加载frame DOM。
https://stackoverflow.com/questions/20401394
复制相似问题