2012-11-06 8 views
10

Sürekli bir tarayıcı örneğine eklemeye çalışırken sürekli bir bütünleştirme oluşturma işleminin parçası olarak çalışan bir WatiN adımı başarısız oluyor. Şu anda yaklaşık 5 kez.Browser.AttachTo <T>() aralıklı istisna neden olur "Internet Explorer meşgulken zaman aşımı"

yani: Ben önceki yazılar önerilmiştir tüm bariz şeyler yaptık

WatiN.Core.Exceptions.TimeoutException: Timeout while Internet Explorer busy 
    at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.ThrowTimeOutException(Exception lastException, String message) 
    at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.HandleTimeOut() 
    at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.Try[T](DoFunc`1 func) 
    at WatiN.Core.WaitForCompleteBase.WaitUntil(DoFunc`1 waitWhile, BuildTimeOutExceptionMessage exceptionMessage) 
    at WatiN.Core.Native.InternetExplorer.IEWaitForComplete.WaitUntilNotNull(DoFunc`1 func, BuildTimeOutExceptionMessage exceptionMessage) 
    at WatiN.Core.Native.InternetExplorer.IEWaitForComplete.WaitWhileIEBusy(IWebBrowser2 ie) 
    at WatiN.Core.Native.InternetExplorer.IEWaitForComplete.WaitForCompleteOrTimeout() 
    at WatiN.Core.WaitForCompleteBase.DoWait() 
    at WatiN.Core.Native.InternetExplorer.AttachToIeHelper.FinishInitializationAndWaitForComplete(IE ie, SimpleTimer timer, Boolean waitForComplete) 
    at WatiN.Core.Native.InternetExplorer.AttachToIeHelper.Find(Constraint findBy, Int32 timeout, Boolean waitForComplete) 
    at WatiN.Core.Browser.AttachTo[T](Constraint constraint) 

: Aşağıdaki hata ile

Browser.AttachTo<IE>(Find.ByTitle("Title of Popup")); 

Process.GetProcessesByName("IEXPLORE").ToList().ForEach(p => p.Kill()); 

herhangi watin adımlarını çalıştırmadan önce zaman aşımı arttırın: Bir watin adımını çalıştırmadan önce tüm internet explorer süreçlerini öldür

Her watin adım Aşağıdaki kod bloğunda bir eylem olarak geçirilen
var timeout = 60; 
Settings.AttachToBrowserTimeOut = timeout; 
Settings.WaitForCompleteTimeOut = timeout; 
Settings.WaitUntilExistsTimeOut = timeout; 

:

public void UseAndCloseBrowser(Action<Browser> action, Browser browser) 
{ 
    try 
    { 
     action(browser); 
     browser.WaitForComplete(); 
    } 
    finally 
    { 
     Log(Level.Info, "Attempting to close browser {0}", browser.Title); 
     browser.Close(); 
     browser.Dispose(); 
    } 

} 

Yapabileceğim başka bir şey bilen var mı/bu sinir bozucu hata iletisinin sonuna ulaşmak için işaretleyin?

+0

bağlam watin ne çalışıyor? Örneğin bir CruiseControl.NET Windows hizmetinde çalışıyor mu? Windows hizmetleri penceresiz uygulamalar olduğu için WatiN ile Windows hizmetleri içinden çalışan birçok sorun yaşadım. – NathanAldenSr

+0

Merhaba, üzgünüm ben bu ajan bir windows servisi ve kullanıcı adımı kullanarak çalışan var .. size geri er alamadım. Yani her şey aralıklı başarısız dediğim gibi, hangi takmak dışında çalışır vb internet explorer tam erişime sahiptir. – CraftyFella

cevap

1

geçmişte benzer sorunlar vardı ve çözümü basitçe oturum başına, aynı tarayıcı penceresini yeniden oldu. İlk test çalıştırıldığında bir tarayıcı penceresi oluşturun ve tüm testler için kullanın, ardından test oturumu bittiğinde isteğe bağlı olarak kapatın. Açıkçası, bu, kullandığınız test kablo demetine bağlıdır, ancak çalışmalıdır. IE pencereleri oluşturma ve imha etme, kaynak yoğun bir etkinliktir, bu nedenle mümkünse kaçınmak en iyisidir.

+0

Merhaba, deniyorum 2 pencere açılır en şunlardır eklemek için, bu yüzden gerçekten aynı pencere kullanamaz. Cevabınız için teşekkürler. – CraftyFella

İlgili konular