从窗口切换到iframe时出错

时间:2017-01-22 17:48:02

标签: iframe selenium-webdriver

从窗口切换到iframe时出错并获取错误没有找到iframe ID。错误进入了testng

脚本

click(locator.login_link);

//点击时我会在几秒钟内打开Iframe窗口

driver.switchTo().frame("GTM-WDM67TP");

//通过传递id

切换到iframe窗口
click(locator.login_email);

//点击iframe窗口上的元素

源代码

  <!-- inject:css -->
  <link rel="stylesheet" href="assets/styles/user/main.css">
  <!-- endinject -->
</head>

   <body class="mini-navbar">
  <!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WDM67TP" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
          <!-- End Google Tag Manager (noscript) -->
          <div ui-view="mainView" ng-class=""></div>
     <!-- inject:js -->
  <script src="scripts/vendor/jquery-2.1.1.min.js"></script>
  <script src="scripts/vendor/angular.min.js"></script>
  <script src="scripts/vendor/inspiniaApp.js"></script>
  <script src="scripts/vendor/bootstrap.min.js"></script>
  <script src="app.js"></script>

1 个答案:

答案 0 :(得分:1)

以下是切换到所需框架的不同方法:

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src, 'GTM-WDM67TP')]")));

或者

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@src='https://www.googletagmanager.com/ns.html?id=GTM-WDM67TP')]")));

如果它是页面上的第一帧,那么使用index属性,您也可以尝试关注:

driver.switchTo().frame(0);

driver.switchTo().frame(driver.findElement(By.tagName("iframe")));

未为框架定义 id 属性。