2017-01-22 7 views
0

ウィンドウからiframeに切り替え中にエラーが発生し、iframe IDが見つかりませんでした。エラーはTestNGの中で、私はIDウィンドウからiframeに切り替える際にエラーが発生しました

を渡すことで、IFRAMEのウィンドウに切り替える

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

//数秒でインラインフレームウィンドウが開いてもらうクリックで

スクリプト

click(locator.login_link); 

//を取得しています

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

必要なフレームへの切り替えのためのさまざまな方法を以下に示します。

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属性は、フレームのために定義されていません。

+0

いいえ、このxpathは機能しません。別の方法をお勧めしますか? –

+0

他にも多くの方法があります。私は私の答えを更新し、いくつかのオプションを述べました。ただし、一般公開されているUIの場合は、詳細を共有してください。 – Mahipal

+0

ありがとうございます。インデックスプロパティでは0ではなく1を渡していましたが、その代わりにiframeが1つしかありません。 –

関連する問題