5

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

我试过的:

  • 找到任何可能的方法来配置驱动程序本身。什么也没找到:没有功能,没有选项,没有 cmd 参数
  • 在安全选项卡中找到设置。我已经检查过了,发现允许这样做的设置已为 IE9 删除。
  • 使用这样的注册表项,但它没有帮助(在此处找到):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2202=0x0

还有这个:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_RESTRICT_FILEDOWNLOAD\iexplore.exe=0x00000000

谁知道怎么解决?这是真的吗?

4

1 回答 1

3

不幸的是,我最近也遇到了这个问题。恐怕这不是好消息。

IE8 及以下,这是不同的,仅仅是因为它是一个你可以与之交互的新窗口。

IE9,它现在是一个内置的“框架通知栏”

您可以使用 PInvoke 单击保存按钮...请参阅此主题:

https://stackoverflow.com/a/8532222/1173729

这个答案是针对 Watin 的,但唯一的区别是 Watin 已经封装了获取特定浏览器窗口句柄的能力。这可以简单地用你自己的方法来切换,要点一般只是获取 IE 窗口的句柄,沿着它的子元素向下走,直到你点击“保存”按钮。但是,这有一个主要缺点,将控件切换回 Selenium - 它不会发生,Selenium 只会挂起。

请注意,这一切都在 C# 中。Java 显然还有其他方式,例如“机器人”类:

http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

我没有使用它们,但是您将能够使用该类将其定向到“保存”按钮所在的位置。

将没有注册表项或设置来避免此问题 - 这根本不可能。

我已经决定,由于 FF 和 Chrome 可以设置为自动下载文件,您可以在之后验证它的存在。您测试该文件是否可以下载并显示在硬盘上。

如果在 Chrome 和 Firefox 中运行良好,那么在 IE9 中不会发生的可能性有多大?苗条,但可能。

底线是它是一个操作系统对话框,超出了 Selenium 的范围。

您还可以将其与 AutoIT 结合使用。我的经验是 AutoIT 也可能同样不稳定。

于 2013-02-07T17:27:50.467 回答