2015-03-06 25 views
6

ile senkronize etmek için beklerken zaman AngularJS uygulamasını test ediyorum ve çok yeni iletki için yeni. Tarayıcıyı her açtığımda açılır ve daha sonra cmd'de aşağıdaki hatayı atmadan önce zaman aşımını bekler. Zamanlayıcı çıkışı 50001ms sonra

Timed out waiting for Protractor to synchronize with the page after 50001ms

Ben zaman aşımı sınırını artırarak çalıştı, ancak her zaman bu hatayı alıyorum var. Düzgün

 browser.ignoreSynchronization = true; 
     browser.driver.sleep(5000); 
     browser.debugger(); 
     browser.waitForAngular(); 

sayfa yükler ve ben düğme nesnelerle etkileşim Eclipse ve Selenyum kullanırsanız, gayet güzel çalışıyor: Ben de tüm bunları kullanarak çalıştılar.

Yalnızca iletki Senkronizasyon sorunları yaşıyor. Lütfen yardım et. Açıölçer zaman aşımına neden

+0

Sahip olduğunuz bazı kodları verebilir misiniz? –

+0

Sadece onun yaptığı tarayıcıyı açmak için bir yapılandırma dosyası ve sonra eleman gibi bir öğeye tıklayarak (by.xpath ('// a [içerir (@class, "ng-binding") ve. = "Merhaba"]')) .click(); – ASB

+0

'.get (url)' herhangi bir yerde mi kullanıyorsunuz? İlk önce Angular uygulaması olan bir sayfaya gitmeniz gerekeceğini düşünüyorum. – Droogans

cevap

5

Olası nedenler:

  1. Web sayfası beklenen biçimde Açısal uygulamıyor (yani birlikte body etiketi üzerinde ng-app). Daha sık, bu durumda alacağınız hata Angular not found on page,, ancak bir zaman aşımı sorunun dışında değil. Sorun bu olsaydı ignoreSynchronization kullanarak düzeltin, bu yüzden sen değilsin.
  2. Bir HTTP isteği bekliyor veya başarısız. Dev konsolunuzu açın ve sayfa İletki ile yüklendiğinde "Ağ" sekmesini kontrol edin (İletkenle olabilir ve manuel testte olmayabilir). Başarısız bir şey bulursanız, isteği doğru bir şekilde verdiğinizden emin olun. Örneğin, HTTPS üzerinden bir HTTP uç noktasına erişmeye çalışıyorsanız, isteğin başarısız olması ve İletkenin zaman aşımına uğraması kesinlikle mümkündür.
  3. Sayfanız, $timeout veya $http numaralarını tekrar tekrar yoklıyor. İletki, Açısal “dinlenme” durumuna ulaşana kadar hiçbir şey yapmaz (tüm elemanlar ve veri bağlantıları yüklenir ve tüm istekler iade edilir).

Zaman aşımı nedenlerinin resmi listesi şuradadır: https://github.com/angular/protractor/blob/master/docs/timeouts.md.

Ancak Javascript konsolunu ve Ağ isteklerini sayfa yüklenirken kontrol ederseniz, neyin yanlış olduğunu anlayabilmeniz gerekir. İyi şanslar!

+0

Bunun için teşekkür ederim, ben dev ekibi ile '$ timeout' veya '$ http' istekleri hakkında onaylama aşamasındayım. – ASB

+0

Sorununuzu yükleme isteğiyle nasıl düzelttiniz? – puppeteer701

+0

@ MatjažJurečič, HTTP istekleri hakkında konuştuğunuzu varsayalım. Her şey çok basit. HTTP isteğinizden biri başarısız olursa, dev ekibinin isteği düzeltmesi gerekir. Aksi takdirde, uygulama beklendiği gibi çalışmıyor. Sadece uzun bir süre duraksa (yani çok büyük bir istek), o zaman iletki konfigürasyon dosyanızdaki zaman aşımı süresini arttırmanız gerekir (https: // github'a bakınız).Ayrıntılar için com/açısal/iletki/blob/master/docs/referenceConf.js). –