我需要测试下载操作。我已经为FF和Chrome浏览器配置了远程网络驱动程序,可以自动下载文件而无需任何支持和弹出窗口。但我找不到任何有用的信息 - 如何允许IE9的文件自动下载。
我尝试了什么:
HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \互联网 设置\区域\ 2202 =为0x0
和此:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\互联网 资源管理器\主\ FeatureControl \ FEATURE_RESTRICT_FILEDOWNLOAD \ IEXPLORE.EXE = 00000000
谁知道如何解决?这是真的吗?
答案 0 :(得分:3)
不幸的是,我最近也遇到了这个问题。我不敢说这不是好消息。
IE8及以下,这是不同的,只是因为它是一个可以与之互动的新窗口。
IE9,它现在是内置的“帧通知栏”
您可以使用PInvoke单击“保存”按钮...请参阅此主题:
https://stackoverflow.com/a/8532222/1173729
这个答案适用于Watin,但唯一的区别是Watin已经封装了获取特定浏览器窗口句柄的能力。这可以简单地用你自己的方法切换,点通常只是获取IE窗口的句柄,沿着它的子元素向下走,直到你点击“保存”按钮。这有一个主要的缺点,将控制切换回Selenium - 它不会发生,Selenium会挂起。
注意,这都是在C#中。 Java显然还有其他方法,比如'Robot'类:
http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html
我没有使用它们,但您可以使用该类将其指向“保存”按钮的位置。
没有注册表项或设置可以避免此问题 - 这根本不可能。
我已经做出了自FF& Chrome可以设置为自动下载文件,之后您可以验证它是否存在。您测试该文件是否可以下载并显示在硬盘驱动器上。
如果IE9在Chrome和Firefox中正常运行,IE9中有什么机会不会发生?苗条,但可能。
最重要的是它是一个操作系统对话框,超出了Selenium的范围。
您也可以将它与AutoIT结合使用。我的经验是AutoIT也可能同样不稳定。