1

ソーシャル ログイン スキーム (Facebook と twitter) でラップされた Web アプリがあります。私は現在、NPM モジュールbrowser-perfを介していくつかのセレン テストをセットアップしていpreScriptます。認証などを実行するために実行できる .

{
    preScript: function(browser) {
        return function(browser) {
            return browser.get(cfg.page).then(function() {
                console.log('Filling in Username');
                return browser.elementByCssSelector('.UsernameClass')
            }).then(function(el) {
                return el.type('Username for site');
            }).then(function() {
                console.log('Filling in Password');
                return browser.elementByCssSelector('.PasswordFieldClass');
            }).then(function(el) {
                return el.type(cfg.password.val);
            }).then(function() {
                return browser.elementByCssSelector('.SubmitButton');
            }).then(function(el) {
                console.log('Clicking submit');
                return el.click();
            }).then(function() {
                return browser.sleep(5000);
            });
        }
    }
}

これを自分の Web アプリに適用する方法を考えていましたが、唯一の問題は、Facebook または Twitter のログイン ボタンをクリックすると、新しいウィンドウがポップアップし、元のスクリプトから制御が奪われることです。通常の使用例では、ユーザーが情報を入力し、ログインをクリックすると、コントロールが返されます。

自動セレンテストでこれを処理する方法はありますか? どうにかしてポップアップ ウィンドウへの参照を取得できますか?

4

2 に答える 2

0

これらのドキュメントで参照されているように、wd.newWindow を使用して新しいウィンドウへの参照を取得できます - https://github.com/admc/wd/blob/master/doc/api.md

このスクリプトを変更して、ログイン ボタンをクリックし、新しいウィンドウへのハンドルを取得し、ログイン スクリプトを実行するだけで問題ありません。

于 2015-05-12T22:15:12.050 に答える
0

これは、テスト用の Facebook アカウントを作成し、それらを使用してセッション Cookie をドロップする方法を説明しています。これにより、ポップアップが表示されないので心配する必要がなくなります。

Selenium Webdriver を使用した Facebook ログインの自動化

于 2014-06-07T20:29:24.237 に答える