2016-08-22 5 views
-1

私はこの分度器のコードがポップアップのために機能しない理由はありません。 私の分度器のバージョン:4.0.3クロームバージョン:chromedriver_2.22.exe分度器のポップアップOKボタンをクリックすることができません

以下

は私が

が失敗しました取得していますエラーメッセージです:なし警告オープン (セッション情報:クロム= 52.0.2743.116) (ドライバ情報:chromedriver = 2.22.397933(1cab651507b88dec79b2b2a22d1943c01833cc1b)、プラットフォーム=のWindows NT 6.1.7601 SP1 x86_64で) スタック: NoSuchAlertError:なし警告オープン (セッション情報:クロム= 52.0.2743.116) (ドライバ情報:chromedriver = 2.22.397933(1cab651507b88dec79b2b2a22d1943c01833cc1b)、プラットフォーム= Windows NT 6.1.7601 SP1 x86_64)

0 。ポップアップ

<div class="modal-content" modal-transclude=""><div class="popupAlert popupAlert-full marginNone ng-scope"> 
    <div class="popup-header"> 
     <h2 class="modal-title ng-binding" id="myModalLabel">You are leaving this page </h2> 
    </div> 
    <div class="popup-body"> 
     <div class="row Margin0"> 
      <p class="text ng-binding">By continuing all the SLI data will be lost.</p> 
     </div> 
    </div> 
    <div class="popup-footer"> 
     <div class="row Margin0"> 
      <a data-ng-click="cancel()" class="pull-right buttonLink2">Cancel 
      <button type="button" class="pull-right swc_button" focus-element="autofocus" data-dismiss="modal" ng-click="ok()">Ok</button> 
     </a></div><a data-ng-click="cancel()" class="pull-right buttonLink2"> 
    </a></div><a data-ng-click="cancel()" class="pull-right buttonLink2"> 
</a></div></div> 

分度器コード

するvar popupAlert = browser.switchTo()アラートの

HTMLスクリプト();

var alertText = popupAlert.getText(); 
    console.log(" Alert text :" +alertText); 
    popupAlert.accept(); 

// expect(popupAlert.accept).toBeDefined();

答えて

0

アラートボックスを開くコードを記述しているかどうかを確認してください。

browser.pause()を使用してください。これは分度器のブレークポイントのように動作し、警告ボックスを開くアクションを実行した後で使用し、cキーを使用して分度器テストをステップバイステップで続行します(別の分度器がタイムアウト例外をスローしません)。

+0

はい、私は –

+0

browser.get( "URL)書かれている;。 –

+0

要素(by.linkText(linktext_locatorを)))(クリックしてください。 –

1

browser.switchTo().alert()は、あなたのポップアップがJavascript警告ボックスの場合にのみ機能します。あなたのシナリオでは、ポップアップはHTMLコードを使用して生成され、通常のWeb要素として取得できます。以下のコードを使用してポップアップを受け入れます。

element(by.css(".popupAlert")).isDisplayed().then(function(isDisplayed){  
    if(isDisplayed){ 
     element(by.css(".popup-footer a")).click() //to close the alert 
     //or 
    element(by.css(".popup-footer button")).click() //to accept the alert 
    } 
}) 
+0

を介してのみアクセスする必要があります。ポップアップが必要ですが、私はスイッチしなければなりません。キャンセルリンクをクリックするか、送信ボタンをクリックするだけです –

+0

HTMLポップアップはあなたのウェブページ上で重なっているdiv要素に過ぎません。 〜でモーダルウィンドウの仕組みをよりよく理解するための十分なブートストラップモーダルウィンドウ。 [ブートストラップモーダルウィンドウ](http://getbootstrap.com/javascript/#modals) –

1

私はあなたが、それは単純なHTMLポップアップで、そこjavascriptのアラートを持っていない@ Sudarshanの答えに同意します。

ただし、ポップアップがいつか表示されるので、ExpectedConditionsを使用した私の経験では、効率的にキャプチャすることができました。

var EC = protractor.ExpectedConditions; 
var popup = $('popupAlert'); 
var okButton = element(by.buttonText('Ok')); //pls use appropriate locators incase this doesn't work! 
popup.click(); 
browser.wait(EC.visibilityOf(okButton),5000); 
okButton.click(); 
関連する問題