2012-04-16 5 views
1

У меня возникли проблемы с переключением между всплывающими окнами в Selenium IDE. Я использую тестовую пользовательскую систему Facebook для создания тестового пользователя (эта часть работает отлично), а затем написала несколько шагов, чтобы удалить авторизацию для приложения, к которому они принадлежат (например, раздражает то, что Facebook не позволяет вам указать, будете ли вы 'как ваша тестовая учетная запись, чтобы уже разрешить приложение). Независимо от того, когда у меня есть свежий тестового пользователя, подписанный в Facebook, не существующего разрешения на мое приложение, я его открыть страницу, содержащую кнопку подключения, затем:Тестирование facebook connect with selenium

  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_clicked и click name=grant_clicked (нажав две кнопки отправки, чтобы авторизовать приложение).

+0

Обратите внимание, что тест апите Facebook, похоже, чтобы позволить пользователям быть установлены как уполномоченные или не авторизованы вашим приложением. См. Http://developers.facebook.com/docs/test_users/ Установить Installed = false (по умолчанию это значение истинно). Обратите внимание, что есть также параметр разрешений, позволяющий указать, какие разрешения необходимо предоставить приложению, если вы установили его в true. – GrahamMc

+0

Спасибо @GrahamMc, не знаю, как я пропустил это. Это избавит меня от нескольких лишних шагов, которые я написал для удаления авторизации! – ehed

+0

Надеюсь, что вы приедете прямо @ehed - я отказался от попыток GUI проверить свое приложение из-за ограничений по времени - как печально, но я хочу попробовать еще раз. Фактически, так я знал, что API имеет этот вариант, поэтому я рад, что моя работа не была напрасной - это помогло вам! Я всегда жалею, что не имею автоматизации тестирования. – GrahamMc

ответ

0

Вы можете попробовать это workaround и присвоить некоторый идентификатор вашего всплывающий:

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 | name = grant_required_clicked' после 'click | css = # fbSignInAnchor> img' без каких-либо 'waitForPopup' и' selectWindow'? –