我需要操作彈出窗口&使用Java或 下載IE瀏覽器對話框基於Javascript的自動化解決方案。Java或Javascript中的窗口對話框和彈出窗口處理
我嘗試過硒2,但它不能正常工作,所以任何其他建議相同。 其實selenium2並沒有提供適當的警報/下載對話框處理 我正在考慮使用一些其他的JavaScript/Java解決方案。
隨着下載對話框:我需要將下載的文件保存到特定的位置。 使用警報對話框:我需要檢查顯示的消息並單擊特定按鈕。
任何建議表示讚賞。 謝謝。
我需要操作彈出窗口&使用Java或 下載IE瀏覽器對話框基於Javascript的自動化解決方案。Java或Javascript中的窗口對話框和彈出窗口處理
我嘗試過硒2,但它不能正常工作,所以任何其他建議相同。 其實selenium2並沒有提供適當的警報/下載對話框處理 我正在考慮使用一些其他的JavaScript/Java解決方案。
隨着下載對話框:我需要將下載的文件保存到特定的位置。 使用警報對話框:我需要檢查顯示的消息並單擊特定按鈕。
任何建議表示讚賞。 謝謝。
我使用硒1,它很適合在我的應用程序中處理彈出窗口。
//Click on browse file button, open a popup
selenium.click("//input[@value='Browse...']");
//waiting for popup to load
selenium.waitForPopUp("_Dialog", "30000");
//selecting the popup by passing window name
selenium.selectWindow("name=_Dialog");
//click a link inside pop up window
selenium.click("link=something");
//Put other popup operations here
//click cancel button for pop up
selenium.click("cancel");
//back to main window
selenium.selectwindow("null")
從警報框得到消息,使用selenium.getAlert();
。這會將包含在警告框中的消息作爲字符串返回。
此外,有時您需要檢查在切換到它之前是否發生過警報。
int noofWindows = selenium.getAllWindowNames().length;
if (noofWindows > 1){
//selects the second window
selenium.selectWindow(selenium.getAllWindowIds()[2]);
//Prints the message in the alert window
System.out.println(selenium.getAlert());
}
如果不是必須在IE中運行測試,使用firefox(*鉻),並執行代碼之前關閉所有其他窗口。
我希望這可以幫助你。
*所有提到的代碼用於處理JavaScript彈出窗口。我不確定這是否適用於Vb腳本。
編輯
我認爲IE下載彈出一個窗口事件,因此不能被直接硒處理,爲此,你將不得不使用Java AWT或AutoIt的。
AutoIt腳本應該是類似的東西,以
WinWaitActive(windowTitle)
ControlClick(windowTitle,"",buttonName)
並將其保存爲IEsave.exe。注意:我沒有試過這個AutoIT腳本。
現在您已經從您的程序執行IEsave.exe。我在這裏使用java。
java.lang.Runtime.getRuntime().exec("c:/IEsave.exe");
這將執行該文件,該文件反過來將處理窗口的保存按鈕事件。
您可以創建類似的exe文件來處理其他窗口的事件。
希望這可以解決您的問題。
感謝答覆,其真正有用的,其實我使用selenium2 WebDriverBackedSelenium運行在IE8的測試中,我能夠操縱警告/確認對話框,但仍不能處理IE下載對話框有'打開'/'保存'/'取消'按鈕的窗口,我需要點擊'保存',你能幫我解決這個問題嗎?如有可能,請提供一些具體細節的代碼。謝謝。 – SmartSolution 2011-04-26 18:35:44
@SmartSolution - 我已經更新了答案。請參考它,希望這有助於。 – 9ikhan 2011-04-27 05:42:38
謝謝9ikhan。我仍然面臨這個AutoITscript的問題。它在RDP會話打開時適用於本地系統和RDP。但是,當RDP會話關閉時,AutoITscript掛起。你知道任何解決方法讓AutoITscript在關閉的RDP上工作嗎? – SmartSolution 2011-05-06 06:20:35
爲此使用JS。 Java將不得不使用JS,所以它只會增加一層複雜性和失敗的機會。 – 2011-04-25 10:40:18
@Andrew Thompson:感謝您的回覆,現在我可以使用selenium2驅動程序自己處理警報/確認對話框,但對於IE下載對話框窗口,我使用了AutoIT腳本作爲解決方法。仍在尋找那聰明的解決方案;) – SmartSolution 2011-04-26 18:38:38