Webdriver | IE9 |设置自动下载文件

时间:2013-02-07 13:28:08

标签: internet-explorer download selenium-webdriver

我需要测试下载操作。我已经为FF和Chrome浏览器配置了远程网络驱动程序,可以自动下载文件而无需任何支持和弹出窗口。但我找不到任何有用的信息 - 如何允许IE9的文件自动下载。

我尝试了什么:

  • 找到任何可能的方法来配置驱动程序本身。什么都没找到:没有能力,没有选择,没有cmd args
  • 在“安全”标签中查找设置。我已经检查过它,发现IE9已经删除了允许这样做的设置。
  • 使用此类注册表项,但它没有帮助(找到它here):
  

HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \互联网   设置\区域\ 2202 =为0x0

和此:

  

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\互联网   资源管理器\主\ FeatureControl \ FEATURE_RESTRICT_FILEDOWNLOAD \ IEXPLORE.EXE = 00000000

谁知道如何解决?这是真的吗?

1 个答案:

答案 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也可能同样不稳定。