2012-04-16 55 views
1

我在Selenium IDE中的彈出窗口之間切換時遇到問題。我使用Facebook的測試用戶系統來創建一個測試用戶(這部分工作完美),然後寫了一些步驟來刪除他們所屬的應用程序的授權(令人討厭的是,Facebook不會讓你指定你是否是你'喜歡你的測試帳戶已經授權應用程序)。無論如何,一旦我有我的應用程序沒有現成的授權簽署成爲Facebook的一個新的測試用戶,我把它打開網頁包含連接按鈕,然後:測試facebook連接硒

  1. waitForCondition selenium.browserbot.getCurrentWindow().document.getElementById('fbSignInAnchor')
  2. click css=#fbSignInAnchor > img

在這一點上,Facebook使用授權啓動該彈出窗口。我嘗試過使用waitForPopup,但未能檢測到彈出窗口。所以現在我有它pause 5000然後selectWindow title=Log into [my app's name],但這是順序運行時失敗 - 如果我手動執行此步驟,它工作正常。

什麼是讓它等待彈出窗口,然後選擇它的最佳方式,以便我可以運行下一步,即clickAndWait name=grant_required_clickedclick name=grant_clicked(單擊兩個提交按鈕來授權應用程序)。

+0

注意,Facebook的API測試,似乎讓用戶可以設置爲授權或不被您的應用程序的授權。請參閱http://developers.facebook.com/docs/test_users/ Set Installed = false(默認情況下爲true)。請注意,如果將安裝設置爲true,那麼還有permissions參數以允許您指定應該給予應用程序的權限。 – GrahamMc 2012-04-21 18:56:31

+0

謝謝@GrahamMc,不知道我錯過了這個。這節省了我爲刪除授權而寫的幾個不必要的步驟! – ehed 2012-04-23 18:14:20

+0

希望你來對@ehed - 我放棄了嘗試GUI測試我的應用程序由於時間限制,有多悲傷 - 但我想再試一次。事實上,這就是我知道API有這個選項的原因,所以我很高興我的工作不是徒勞 - 它幫助了你!我總是後悔沒有測試自動化。 – GrahamMc 2012-04-24 14:01:38

回答

0

你可以試試這個workaround和分配一些ID您彈出:

getEval | selenium.browserbot.findElement('css=#fbSignInAnchor>img').target='my_window' 
getEval | window.open("", "my_window") 
click | css=#fbSignInAnchor > img 
selectWindow | my_window 
waitForElementPresent | name=grant_required_clicked 
clickAndWait | name=grant_required_clicked 
+0

@ehed - 你試過了嗎?waitForElementPresent |點擊|後名稱= grant_required_clicked' css =#fbSignInAnchor> img'沒有任何'waitForPopup'和'selectWindow'? – 2012-04-23 18:32:17