gpt4 book ai didi

javascript - 是否可以在 Protractor 测试下为chromedriver添加插件?

转载 作者:搜寻专家 更新时间:2023-11-01 04:54:11 24 4
gpt4 key购买 nike

在 Protractor 测试期间,我一直在尝试处理基本身份验证。遇到一些困难,所以我找到了一个 chrome 插件,它会自动为需要基本身份验证的网站发送我的凭据。

每次执行 chromedriver 时,都会加载一个新的配置文件,我怎样才能永久性地向我的测试添加一个插件?我知道有 https://sites.google.com/a/chromium.org/chromedriver/extensions , 但我认为这不是很清楚。

最佳答案

您需要在 chromeOptions 中配置 extensions 列表:

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

请注意,在 extensions 中,提供 list of base-64 encoded packed Chrome extension 很重要.

要获得 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

或者,更简单,使用 fsq 创建一个 helper.js 文件:

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;
};

然后,在您的 Protractor 配置中,使用此 getCapabilities() 函数获取功能:

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

exports.config = {

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

...
}

目前,它只适用于单个扩展,因此还有改进的空间。

此外,如果遇到问题,请查看以下问题:

关于javascript - 是否可以在 Protractor 测试下为chromedriver添加插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27278222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com