Internet Explorer忙时超时错误

本文关键字:超时 错误 Explorer Internet | 更新日期: 2023-09-27 18:11:45

我有一些测试,似乎是随机失败,由于超时,而Internet Explorer繁忙错误。

WatiN.Core.Exceptions.TimeoutException: Timeout while Internet Explorer busy

这些错误似乎只发生在代码为

的行上

WatiN.Core.Browser.AttachTo[T](Constraint constraint)

我的设置方法:

[SetUp]
[Timeout(1000)]
public void WithAnInstanceOfTheBrowser()
{
    Settings.AttachToBrowserTimeOut = 200;
    Settings.WaitUntilExistsTimeOut = 200;
    Settings.WaitForCompleteTimeOut = 200;
    Settings.SleepTime = 60;
    BrowserExtension.KillAllIEProcess();
    var securePassword = new SecureString();
    foreach (var c in UserConfig.GetConfigPassword())
    {
        securePassword.AppendChar(c);
    }
    string address = UserConfig.GetConfigUrl();
    string username = UserConfig.GetConfigUserName();
    ProcessStartInfo startInfo = new ProcessStartInfo(@"C:'Program Files'Internet Explorer'iexplore.exe", address);
    startInfo.UserName = username;
    startInfo.Password = securePassword;
    startInfo.UseShellExecute = false;
    startInfo.LoadUserProfile = true;
    Process.Start(startInfo);
    _browser = Browser.AttachTo<IE>(Find.ByUrl(UserConfig.GetConfigUrl()));
}

_browser是类级别的全局变量:

IE _browser;

然后在测试中,我在打开的窗口上执行了许多操作,其中一个操作是单击一个按钮,该按钮在应用程序中打开一个新选项卡。然后,为了获得对这个新页面的引用,我使用以下行:

Thread.Sleep(6000); //even sleeping but to no avail
Browser workItem = Browser.AttachTo<IE>(Find.ByTitle(new Regex(workItemRegex)));

这似乎随机抛出错误,有时它工作,有时我得到一个错误。

我不太确定这里出了什么问题,因为这看起来应该是合乎逻辑的。

在测试的TearDown中,所有IE进程都被杀死,_browser被设置为null。

任何想法?

Internet Explorer忙时超时错误

我以前见过这种情况,当我试图关闭并重新打开IE然后重新连接到浏览器时,它发生在我身上。但是我找不到一个逻辑的解释,我为什么不能找到原因超时在我(至少对我而言),因为即使你杀了IE对象实例化一个新的前关闭即需要比预期更长的时间(相信我,我试过了几分钟),唯一的解决办法是杀了这个过程我是使用在创建一个新的之前,从那一刻开始我没有任何问题。