在WatiN 2.0 Final中出现IE新功能的问题

时间:2011-03-12 14:40:39

标签: internet-explorer release watin

在WatiN的最终版本2.0中,宣布了Internet Explorer的新功能:

  

“WatiN现在将等待IE和   DOM文档到达   '互动'或'准备'状态   避免不必要的超时“

事实上,在我的项目中,当WatiN只等待“就绪”状态时(我知道它是完全加载网页),我们需要对现有测试使用旧功能。目前,许多测试都失败了。

主要问题是 WatiN尝试在某些操作后找到并操纵未加载的元素(例如,点击按钮)

是否可以将新版本的WatiN切换为旧工作原理?

2 个答案:

答案 0 :(得分:1)

尝试此扩展方法

public static void WaitForReady(this Browser browser)
{
    int timeWaitedInMilliseconds = 0;
    var maxWaitTimeInMilliseconds = Settings.WaitForCompleteTimeOut * 1000;

    while (browser.Eval("document.readyState") != "complete" && timeWaitedInMilliseconds < maxWaitTimeInMilliseconds)
    {
        Thread.Sleep(Settings.SleepTime);
        timeWaitedInMilliseconds += Settings.SleepTime;
    }
}

答案 1 :(得分:0)

我相信我遇到了同样的问题。不过,新Watin的速度提升非常棒!

加载页面并执行类似

的操作
foreach(TextField t in browser.TextFields) {
t.setAttribute("value","test");
}

给我一​​个系统未经授权的例外,新Watin约1/10次。发生这种情况时,browser.text会返回""

所以我想要玩像

这样的东西
while(browser.text=="") {
System.Thread.Thread.Sleep(500);
}

(如果页面实际上没有文本,则中断)。