【问题标题】:Testing facebook connect with selenium测试 facebook 与 selenium 的连接
【发布时间】:2012-04-22 01:55:43
【问题描述】:

我在 Selenium IDE 中的弹出窗口之间切换时遇到问题。我正在使用 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(单击两个提交按钮以授权应用程序)。

【问题讨论】:

  • 请注意,Facebook 测试 API 似乎确实允许将用户设置为您的应用授权或未授权。请参阅developers.facebook.com/docs/test_users Set Installed = false(默认为 true)。请注意,如果您将 installed 设置为 true,还有 permissions 参数可让您指定应授予应用程序的权限。
  • 谢谢@GrahamMc,不知道我是怎么错过的。这节省了我为删除授权而编写的几个不必要的步骤!
  • 希望你是对的@ehed - 由于时间限制,我放弃了尝试对我的应用程序进行 GUI 测试 - 多么可悲 - 但我想再试一次。事实上,这就是我知道 API 有这个选项的原因,所以我很高兴我的工作没有白费 - 它帮助了你!我总是后悔没有测试自动化。

标签: facebook selenium selenium-ide


【解决方案1】:

您可以试试这个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

【讨论】:

猜你喜欢
  • 2012-05-18
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多