切换到父框架webdriver

时间:2016-03-11 15:08:37

标签: javascript node.js selenium-webdriver

我遇到的问题是使用webdriver.js切换到父框架或iFrame。我尝试实现一个函数来做这个,它确实有效,但只有第二级帧。如果我想从一个像4或5级深度的帧切换到父帧,这个功能甚至会比现在更加复杂。其中一个主要问题是我必须使用for循环来获取最高级别​​的帧,然后遍历每个帧以获得嵌套帧(如果有的话)。我必须能够保持循环,直到没有帧有任何嵌套的帧。另外你可以告诉下面的解决方案有很多冗余代码并嵌套到回调地狱的地步。我试图将for循环过程提取到辅助函数,但我遇到的问题是我必须切换回顶层,然后导航回帧梯以检查嵌套帧的每个帧。我添加了评论以帮助解决丑陋问题。

<div class="ribbon-holder">
  <div class="ribbon ribbon-holder">Free Shipping!</div>
  <a href="http://www.somesite.com">
    <img src="http://www.adventurouskate.com/wp-content/uploads/2016/01/planes-black-shower-curtain.jpg" alt="Shower Curtin" />
  </a>
</div>

2 个答案:

答案 0 :(得分:1)

如果其他人没有回答这个问题

driver.switchTo().parentFrame() 

在NodeJS或Javascript中不起作用,但是

driver.switchTo().defaultContent()

起作用。

答案 1 :(得分:0)

  

您是否尝试过此方法切换到父框架

driver.switchTo().parentFrame();