2016-05-03 16 views
2

facebookで角度アプリを自動化しようとしています。私は正常にFacebookにログインすることができますが、iframe内の角ページにナビゲートしようとするたびに、このエラーメッセージ "を蹴飛ばし続けます.Practractorがページと同期するのを待つ間にエラーが発生します:" window.angular is未定義。これは非角ページなので、またはテストでクライアント側のナビゲーションが含まれているために発生する可能性があります。これは、分度器のブートストラップに干渉する可能性があります。iframeのノンアングルページからアングルページに移動することができません

スペック

それを( 'テスト'、関数(){

browser.driver.ignoreSynchronization = true; 
    browser.driver.get(URL); //navigating to my facebook page 
    browser.driver.sleep(500); 

    //Login to facebook 
    browser.driver.findElement(by.id('email')).sendKeys(email); 
    browser.driver.findElement(by.id('pass')).sendKeys(password); 
    browser.driver.findElement(by.id('login')).click(); 
    browser.driver.sleep(500); 

    //navigating to angular page withtin iframe 
    browser.driver.switchTo().frame(0); 
    browser.waitForAngular(); 
    element(by.model('name')).click(); 

}); 

構成

exports.config = {seleniumAddress 'http://127.0.0.1:4444/wd/hub'、 機能:{ 'browserName': 'chrome'、

}, 
specs: ['test'], 

framework: 'jasmine2', 

jasmineNodeOpts: { 

    onComplete: null, 
    isVerbose: false, 
    showColors: true, 
    includeStackTrace: true, 
    defaultTimeoutInterval: 5000 
} 

};

分度器バージョン - 3.3.0 NPM - 2.14.12 ノード - 4.2.4 ジャスミン - 2

ログ

10:33:46.248 INFO - 実行:スイッチ 10:33:46.292 INFO - 完了:[フレームへの切り替え:0] 10:33:46.300 INFO - 実行中:[非同期スクリプトを実行する:{return(function(rootSelector、callback){ var el = document.querySelector(rootSelector);

try { if(window.getAngularTestability){ window.getAngularTestability(el).whenStable(callback); リターン; } 場合(!window.angular){ スロー新しいエラー(「これは非角度ページであるため、またはあなたのテストが含まれているため」「+ + 「window.angularが定義されていない。これは、どちらかの可能性が」クライアント - '+ 'のブートストラップに干渉する可能性のあるサイドナビゲーション、詳しくはhttp://git.io/v4gXMを参照してください。 } if(angular.getTestability){ angular.getTestability(el).whenStable(callback); } else { if(!angular.element(el).injector()){ throw new error( 'ルート要素(' + rootSelector + ')にインジェクタがありません。' + ' ng-app。 '); } angle.element(el).injector()。get( '$ browser')。 notifyWhenNoOutstandingRequests(コールバック); } } catch(err){ コールバック(err.message); } })。適用する(これ、議論); }

Htmlの

我々行う

答えて

0

がであなたの角度アプリですIFRAME

<iframe id=" " class=" " frameborder="" src=" " style="" name=""> 
<!DOCTYPE html> 
<html class=" " lang="" ng-app="appname" xmlns=" "> 
<head> 
<body class=" "> 
</html> 
</iframe> 

にすべてのヘルプははるかに高く評価される男とのhtmlコードでNG-アプリを持っていますIframe?

defaultContentに切り替えてから、Iframeに切り替えます。

browser.switchTo()。defaultContent();次に

browser.driver.switchTo()。frame(0);

角度から角度のあるアプリケーションを特定できませんでした。

関連する問題