2012-07-02 40 views
0

我是新來的硒RC。我一直在eclipse中運行一個簡單的junit測試用例來運行並從adobe.com下載flashplayer。Selenium RC無法使用下載彈出窗口

但硒RC無法點擊甚至無法識別下載彈出窗口。我一直在谷歌搜索中看到幾個建議,但我仍然無法做到這一點。

我一直在試圖讓窗口ID或彈出窗口的名稱來處理它,但我仍然無法做到這一點。我已將我的代碼的主要功能複製到此處:

public void testPopup() throws Exception 
    { 
    selenium.open("http://get.adobe.com/"); 
    selenium.open("/flashplayer/"); 
    selenium.click("id=buttonDownload"); 

    String ids[]=selenium.getAllWindowIds(); 
    for(int i=0;i<ids.length;i++) 
     System.out.println(ids[i]); 
    String[] windownames=selenium.getAllWindowNames(); 
    for(int i=0;i<windownames.length;i++) 
     System.out.println(windownames[i]); 

     String feedWinId = selenium.getEval("{var windowId; for(var x in selenium.browserbot.openedWindows) {windowId=x;} }"); 
    System.out.println(feedWinId); 
     selenium.chooseOkOnNextConfirmation(); 
    selenium.waitForPageToLoad("30000");           
} 

如果有人能幫助我解決這個問題,那將會很棒。

謝謝

回答

0

簡短的回答:你不能。

的時間越長,但還是令人失望的答案:

你不能,因爲沒有電流硒實現支持它。硒人know about it,它實際上是nr。 Selenium中的13個最想要的功能現在

Selenium RC由於其技術限制(純JavaScript,純JavaScript不能下載和保存文件)而永遠不會擁有它,並且它在一年前已被棄用。 Selenium WebDriver ......好吧,也許在未來。各種東西,你可以嘗試,而不是:

  • 反思是否真的需要下載文件。是不是隻是斷言該文件存在,並可以通過making a HTTP request and seeing that the answer was 200 OK下載?
  • 你能通過Selenium得到它的URL後不能download the file using pure Java?我個人認爲這是最好的選擇。
  • 如果您使用WebDriver,則有a great tool for downloading files
  • 如果您使用的是Firefox,則可以設置一個乾淨的測試配置文件,該配置文件將進行配置,以便將每個單擊的文件下載到某個指定的文件夾中。那裏有addons,也可以幫助你。我不確定Selenium RC是否支持使用預先創建的配置文件,但Selenium WebDriver肯定會這樣做。
  • 如果您使用一個給定的瀏覽器進行測試,您可以通過盲目地按下按鈕來弄清楚如何「盲目」下載文件。那個Robotcan help你。您只需單擊該文件,然後一味地按輸入或任意鍵將文件下載到正確的位置。其中也有AutoIt framework其中很多人use for this task
0

您不能使用硒自動化系統生成彈出窗口。
因爲你已經轉移了Autoit with selenium
在此幫助下,您可以在下載彈出窗口中記錄您的活動

+0

嗨ROhit,感謝您的回覆。但我正在尋找一種解決方案,我可以從Linux運行selenium腳本。看起來像AutoIT可以使用Wine運行。但是,你能告訴我是否有其他方法可以在linux中運行這個selenium腳本? – user1489969