【发布时间】:2009-06-21 05:50:58
【问题描述】:
每当我调用 FileUpload.Set 时,IE8 都会打开文件浏览器窗口,然后就坐在那里而不输入任何文本。这是在 Windows XP 上运行的,在我从 Ie7 升级到 IE8 之前它可以正常工作。还有其他人遇到这个吗?
【问题讨论】:
每当我调用 FileUpload.Set 时,IE8 都会打开文件浏览器窗口,然后就坐在那里而不输入任何文本。这是在 Windows XP 上运行的,在我从 Ie7 升级到 IE8 之前它可以正常工作。还有其他人遇到这个吗?
【问题讨论】:
原来 WatiN 源代码中的这一行是问题所在: if (Process.GetProcessById(window.ProcessID).ProcessName != "iexplore") return;
由于某种原因,这台机器上的 iexplore 进程显示为“IEXPLORE”,全部大写。在进程名称中添加 .ToLower() 可以解决问题。
编辑:看起来这个错误已经被报告了。
【讨论】:
由于WatiN 查找对话框的方式(按样式编号),IE8 在低于2.0 的版本中会被破坏是可以理解的。您可能想尝试使用 2.0 测试版。
或者,您可以在 FileUpload DialogHandler 上查看样式编号并添加 IE7 和 8(96CC20C4 和 96CC02C4)的样式编号。
【讨论】:
我想发布此问题的更新,因为它在 Win7 操作系统中再次出现。
如果您在最新的 WatiN 版本中遇到同样的问题,您可以覆盖 FileUploadDialogHandler 类中的函数 CanHandleDialog:
public override bool CanHandleDialog(Window window, System.IntPtr mainWindowHwnd)
{
return true;
}
这不是一个干净的解决方案,但它简单且有效。
【讨论】: