我正在開發一個django項目,使用django_facebook進行Facebook交互,使用Selenium進行自動系統測試。Facebook登錄Selenium測試
在測試中,當談到從我的應用程序登錄到Facebook上,我這樣做:
self.browser.get(self.live_server_url)
self.browser.find_element_by_xpath('//*[@id="facebook_login_js"]/input').click()
self.browser.switch_to_window(self.browser.window_handles[1])
self.login_to_facebook()
但由於Facebook的JS SDK還沒有完成它的異步初始化過程中出現失敗。我的測試過去曾經工作過,不知道現在是否有變化(比如初始化較慢)。
我想過使用fbAsyncInit的解決方案,但該代碼是由JavaScript文件中的django_facebook提供的,我不想去碰它。
有任何想法如何等待Facebook JS SDK完全加載,所以我可以使用登錄功能?
問題是由於SDK尚未加載,所以點擊不起作用。 「login_to_facebook」消息應該填寫登錄表單。 – geekazoid 2013-04-11 12:33:12
@geekazoid好吧,把所有你認爲不起作用的東西放在'set_timeout()'裏面,因爲SDK沒有加載。 – Ryan 2013-04-11 14:37:59
我發現的另一個解決方案是「點擊」,直到出現兩個窗口,但我們知道這是不好的。由於加載時間可能會有所不同,它也不會等待一秒鐘。 我正在考慮像「fb-root」div或類似的改變,但不能從文檔中猜出它。 – geekazoid 2013-04-11 14:43:02