在最终发布华廷2.0 Internet Explorer的新特性宣布:问题与华廷对IE的新功能2.0最终
“华廷现在将等待IE和 DOM文档去在 “互动”或“准备好”状态 避免不必要的超时”
事实上,在我的项目,我们需要使用旧功能的存在的测试中,当华廷仅等待‘准备好’状态(如我知道它完全加载了网页)。目前,许多测试都失败了。
的主要问题是,华廷试图找到和操纵,经过然而,有些动作不能加载元素(例如,点击按钮)
是否有可能切换华廷的新版本以老工作原则?
在最终发布华廷2.0 Internet Explorer的新特性宣布:问题与华廷对IE的新功能2.0最终
“华廷现在将等待IE和 DOM文档去在 “互动”或“准备好”状态 避免不必要的超时”
事实上,在我的项目,我们需要使用旧功能的存在的测试中,当华廷仅等待‘准备好’状态(如我知道它完全加载了网页)。目前,许多测试都失败了。
的主要问题是,华廷试图找到和操纵,经过然而,有些动作不能加载元素(例如,点击按钮)
是否有可能切换华廷的新版本以老工作原则?
我相信我有同样的问题。不过,新的Watin的速度改进太棒了!
加载一个页面并执行类似
foreach(TextField t in browser.TextFields) {
t.setAttribute("value","test");
}
给了我新华廷约1/10的系统未经授权的例外。当发生这种情况browser.text
返回""
所以我想的东西打像
while(browser.text=="") {
System.Thread.Thread.Sleep(500);
}
(有休息的情况下,该网页实际上有没有内容)。
试试这个扩展方法
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;
}
}
谢谢,也遇到了这个问题,目前正在测试你的解决方案。 – 2013-01-09 10:43:19
梅德嗨,你能添加一些代码示例,失败的原因这种变化?我可以在下一个版本中配置这种等待行为,但我也想更好地理解您遇到的问题。关注Jeroen,主要开发人员WatiN – 2011-03-17 15:54:29
嗨Jeroen,很遗憾,我无法为您提供代码示例。我们现在使用版本2.0.20.0的WatiN RC,它不包含这个问题。我们的问题发生在页面重新加载或浏览器转到页面时。我们应用程序中的页面很大,包含很多标记。所以,如果您选择在WatiN的新功能和旧功能之间切换,我们会很高兴。最好的问候,德米特里 – Dmitry 2011-03-24 14:57:02