从窗口切换到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>
答案 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 属性。