2

私は、Facebook インタラクションに django_facebook を使用し、自動システム テストに Selenium を使用して、django プロジェクトに取り組んでいます。

テストでは、アプリケーションから 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 が完全に読み込まれるまで待機する方法はありますか?

4

2 に答える 2

1
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]);

window.set_timeout(function(){
    self.login_to_facebook();
}, 1000)

上記は、ログインを呼び出す前に 1 秒間待機させます。を変えることで時間遊びができます1000Set_timeoutミリ秒単位の時間値を取ります (したがって、1000 = 1 秒)。

于 2013-04-10T20:54:22.657 に答える