是否可以在量角器测试下将插件添加到 chromedriver
Is it possible to add a plugin to chromedriver under a protractor test?
我一直在尝试在量角器测试期间处理基本身份验证。有些困难,所以我找到了一个 chrome 插件,它会自动发送我的凭据,用于需要基本身份验证的网站。
由于每次执行chromedriver时,都会加载一个新的配置文件,因此我如何永久地将插件添加到我的测试中?我知道有 https://sites.google.com/a/chromium.org/chromedriver/extensions,但我不认为这是很清楚的。
您需要在chromeOptions
内配置extensions
列表:
capabilities {
'browserName': 'chrome',
'chromeOptions': {
'extensions': ['base64 encoded extension']
}
}
请注意,在extensions
中,提供base-64编码打包的Chrome扩展名列表很重要。
要获取 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
或者,更简单的是,使用 fs
和 q
制作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;
};
然后,在量角器配置中,使用此getCapabilities()
函数获取功能:
var helper = require('./helper.js');
exports.config = {
capabilities: helper.getCapabilities('/path/to/crx/extension'),
...
}
目前,它适用于单个扩展,因此还有改进的余地。
此外,如果遇到问题,请查看以下问题:
- 设置版式选项
检查这个: https://github.com/andresdominguez/elementor/blob/master/bin/elementexplorer.js#L194
在这里,我正在从本地目录加载扩展。扩展名不是crx文件,而是未压缩的版本。
'chromeOptions': {
'args': ['--load-extension=' + extensionPath]
}
与其使用代码提交扩展并在运行测试时必须从磁盘加载它,不如考虑使用我最近开源的 authenticator-browser-extension
Node 模块。
要使用模块,请从 npm 安装它:
npm install --save-dev authenticator-browser-extension
并在protractor.conf.js
导入:
const { Authenticator } = require('authenticator-browser-extension');
exports.config = {
capabilities: {
browserName: 'chrome',
chromeOptions: {
extensions: [
Authenticator.for('username', 'password').asBase64()
]
}
},
}
专业提示:请记住不要使用代码提交凭据,请考虑改用 env 变量。
希望这有帮助!
一月
- 如何正确地将jquery插件添加到webpack中的jquery对象中
- Jquery循环洗涤器插件:添加到图像的链接
- 向插件添加属性(不是默认方式)
- 如何将自定义插件添加到KeystoneJS管理UI中
- jQuery同位素插件添加过滤器
- 如何向jquery插件添加自定义回调
- 将代码片段插件添加到 Rails 应用程序中的 CKEditor
- Tinymce编辑器图像上传插件添加完整的图像URL
- 如何将插件添加到引导程序
- 是否可以在量角器测试下将插件添加到 chromedriver
- 无法将插件添加到 Cordova 3.0 的 ios 应用程序
- 手动将科尔多瓦插件添加到科尔多瓦项目的正确方法是什么
- CKEditor 4:如何从插件添加CSS样式表
- 向jQuery插件添加回调
- 如何将日期选择器jquery插件添加到bootstrab
- 如何阻止由jquery插件添加的锚点以角度重定向
- 为intl-tel-input插件添加渐隐效果
- jTable插件:添加新行后,动态表不会刷新
- 我如何用一个插件添加多个按钮到我的WordPress帖子编辑器
- TinyMCE链接插件添加自定义属性