2013-07-30 58 views
1

我現在使用PowerShell大約一週。我可以打開一個特定的URL並自動填寫我的用戶名和密碼。我也可以導航到可以找到多個文件下載的某個頁面。Powershell:如何從單獨的窗口打開文件

我用下面的命令來選擇特定的文件下載:

$ie.navigate2('http://www.example.com/resource.aspx?ResourceID=GetDocStoreFile&EntryID=1234') 

接下來發生的事情是,第二個窗口將打開,命名爲「文件下載」。有三個按鈕:打開,保存和關閉。

我不想手動按下「打開」按鈕,但希望腳本爲我執行此操作,然後返回到原始窗口以選擇另一個文件。有什麼建議麼?

回答

1

如果您使用下載URL,我不認爲您可以使用COM對象直接與IE進行交互,因爲沒有文檔。一旦對話框打開,所有對象的屬性都將變爲空。您可以使用我在此發佈的方法:How to perform keystroke inside powershell?AppActivate將按標題激活對話框。

代表的ALT鍵,所以如果你想點擊按鈕的下劃線的字母是O,你會調用的SendKeys這樣的:

$wshell.SendKeys('%O') 
+0

感謝回覆。我理解你的想法,但到目前爲止我無法得到它的工作。我假設它與AppActivate命令有關。這個命令是否會激活某個應用程序?在我的情況下,'文件下載'窗口已經激活,因爲它彈出。基本上,沒有任何事情發生。如果你能給我更多的指示/建議,我將不勝感激。否則,我必須接受它,我必須手動按下「打開」按鈕。 – AVB

+0

除非將$ $ ie.Visible **設置爲$ true,否則它不會被激活。但我不認爲你可以在這種情況下做到這一點,因爲正如我所說,如果你導航到下載鏈接,所有的屬性都會被清空。這就是爲什麼你需要** AppActivate **。如果你可以更具體,我可以更具體。爲您的問題添加屏幕截圖的圖片。另外,請具體告訴我你嘗試過哪些方法無效。 –

+0

@AndreVermeulen這種方法確實有效,我測試了它。如果你可以比「我無法工作」更具體,我可以告訴你誤解在哪裏。首先,「主動」不僅僅意味着它正在運行,這意味着它是與之交互的前臺應用程序。所以不,文件下載窗口尚未激活。它從後臺開始,您需要使用** AppActivate **將其設置爲活動窗口,以便向其發送擊鍵。你真的嘗試過嗎? –

相關問題