2017-11-06 6 views
1

分度器に表示される任意の要素を待機します'/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5'要素です。この要素は、4秒は、どのように私は分度器に新しいですし、wait文 を置くことで問題を持つことが私のコードは以下の通りです

インターネットで検索した後、私は物事の下にしようとしているに来る:

1. browser.driver.sleep(5000); 
2. browser.driver.manage().timeouts().setScriptTimeout(55000); 
3. expect(element(by.xpath(/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5')).isPresent()).toBe(true); 
4. browser.manage().timeouts().implicitlyWait(5000); 

しかしによる1つまたは他のエラーは何も私のために働いていません。助けてください!

答えて

3

elementToBeClickable条件を期待&、それは以下のコードスニペットを見つけるworks.Please使用の可視性チェック:

var targetEle = element(by.xpath(/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5')); 
    var EC_TIMEOUT = 5000; 
    browser.wait(EC.visibilityOf(targetEle), EC_TIMEOUT).then(function(){ 
     browser.wait(EC.elementToBeClickable(targetEle), EC_TIMEOUT).then(function(){ 
      //callback(); 
      targetEle.click().then(function() { 
       callback(); 
      }); 
     }); 
    }); 
+0

このエラーを取得: 失敗しました:非同期角度のタスクが11秒後に終了するのを待機中にタイムアウトしました。これは、現在のページがAngularアプリケーションではないためです。詳細についてはFAQをご覧ください:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular ロケータで要素を待っている間 - ロケータ:By(xpath、/) 変更なし追加後: allScriptsTimeout:15000、html/body/app-root/div/app-dashboard/div/div/div [1]/div [3]/div/div [1] – Gaurav

+0

ページが角でない場合は、コードを追加します。browser.ignoreSynchronization = true; – Rakesh

0

あなたは2つの方法でそれを行うことができます。

  1. 要素がDOMに表示されているかどうかを確認する。
  2. 要素がページに表示されているかどうかを確認する。

    var EC=protractor.ExpectedConditions; 
    browser.wait(EC.presenceOf(element),timeout,"Custom Error Message"); 
    

    第二点となります - は:

第一点は、私たちがNG-場合(NG-場合はDOMの要素を隠すため)

例を使用する場合に使用することができます通常の方法で使用されます。

例: -

var EC=protractor.ExpectedConditions; 
browser.wait(EC.visibilityOf(element),timeout,"Custom Error Message"); 
関連する問題