5

分度器のテスト中に基本認証を処理しようとしました。苦労したので、基本認証を必要とする Web サイトの資格情報を自動的に送信する chrome プラグインを見つけました。

その chromedriver が実行されるたびに、新しいプロファイルが読み込まれます。どうすればテストにプラグインを永続的に追加できますか? https://sites.google.com/a/chromium.org/chromedriver/extensionsがあることは知っていますが、これはあまり明確ではないと思います。

4

3 に答える 3

7

extensions内部でリストを構成する必要がありますchromeOptions

capabilities {
    'browserName': 'chrome',
    'chromeOptions': {
        'extensions': ['base64 encoded extension']
    }
}

で、base-64 でエンコードされたパックされた Chrome 拡張機能のリストextensionsを提供することが重要であることに注意してください。

base64 でエンコードされた拡張子を取得するには、.ctx拡張子ファイルを読み取り、base64. たとえば、Python を使用すると、次のようになります。

>>> import base64
>>> data = open('path_to_the_ctx_extension').read()
>>> base64.standard_b64encode(data).decode('UTF-8')
# outputs the encoded chrome extension which you can paste in the config

または、より簡単に、 and を使用してファイルhelper.jsを作成します。fsq

var q = require('q');
var fs = require('fs');

exports.getCapabilities = function (filename) {
    var deferred = q.defer();

    fs.readFile(filename, function (err, data) {
        var capabilities = {
            'browserName': 'chrome',
            'chromeOptions': {
                extensions: [
                    data.toString('base64')
                ]
            }
        };
        deferred.resolve(capabilities);
    });

    return deferred.promise;
};

次に、分度器構成で、このgetCapabilities()関数を使用して機能を取得します。

var helper = require('./helper.js');

exports.config = {

    capabilities: helper.getCapabilities('/path/to/crx/extension'),

    ...
}

現在、拡張機能1つで動作するので、改善の余地があります。

また、問題が発生した場合は、次の問題を確認してください。

于 2014-12-03T17:49:17.607 に答える