2012-04-16 56 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