2013-02-07 58 views
5

我需要測試下載操作。我已經爲FF和Chrome瀏覽器配置了遠程webdrivers,無需任何提示和彈出窗口即可自動下載文件。但我找不到任何有用的信息 - 如何允許文件自動下載IE9。Webdriver | IE9 |安裝程序自動下載文件

我已經試過什麼:

  • 找到任何可能的方式來配置驅動程序本身。沒有發現:沒有功能,沒有選項,沒有cmd參數
  • 找到安全選項卡中的設置。我已經檢查過它,發現IE9的設置被刪除。
  • 使用這些註冊表項,但它並沒有幫助(發現here):

HKEY_CURRENT_USER \軟件\微軟\的Windows \ CurrentVersion \互聯網 設置\區\ 2202 =爲0x0

這:

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Internet Explorer的 \ MAIN \功能Control \ FEATURE_RESTRICT_FILEDOWNLOAD \ iexplore.exe = 0x00000000

誰知道如何解決它?這是真的嗎?

+3

在這裏有一個跨平臺的文件下載解決方案(在博客條目鼓勵你首先停下來並解決你爲什麼要下載文件):http://ardesco.lazerycode.com/index.php/2012/07/如何下載文件與硒和爲什麼你應該/ – Ardesco

回答

3

不幸的是,我最近也遇到了這個問題。我不敢說這不是個好消息。

IE8及以下,這是不同的,只是因爲它是一個新的窗口,你可以互動。

IE9,它現在是一個內置的「幀通知欄」

您可以點擊使用PInvoke的保存按鈕......看到這個題目:

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

這個答案是華廷,但Watin已經封裝了獲得特定瀏覽器窗口句柄的唯一區別。這可以簡單地用你自己的方法切換,重點通常只是獲得IE窗口的句柄,走下它的子元素,直到你點擊一個'保存'按鈕。然而,這有一個主要缺點,將控制權切換回Selenium - 這不會發生,Selenium會掛起。

請注意,這些都在C#中。 Java的顯然有其他的方式,如「機器人」類:

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

我沒有使用過他們,但你可以使用類將它引導到Save按鈕會。

將不會有任何註冊表項或設置來避免此問題 - 這根本不可能。

我已經做出決定,既然FF & Chrome可以設置爲自動下載文件,您可以在之後驗證它是否存在。您測試該文件可以下載並顯示在硬盤上。

如果在Chrome和Firefox中可以正常工作,那麼在IE9中不會發生什麼情況?苗條,但可能。

底線是一個操作系統對話框,它不在Selenium的範圍之內。

您也可以將它與AutoIT結合使用。我的經驗是AutoIT也可以是片狀。

+0

謝謝,我會試試看。從未使用機器人 - 這將是有益的經驗:) thnx! 實際上,我需要測試所有瀏覽器的降級動作,因爲出於任何原因,它可能不總是能夠單擊下載按鈕或用戶按鈕樣的元素。 – Gadget