我正在使用Intern.js对浏览器扩展进行功能测试。我已经能够使用此配置预先将Chrome扩展程序加载到浏览器中:
{
"capabilities": {
"selenium-version": "3.5.2"
},
"tunnel": "null",
"tunnelOptions": {
"host": "selenium.hostaddres.com:4444",
"port": "4444",
"path": "/wd/hub"
},
"environments": [
{ "browserName": "chrome",
"chromeOptions": {
"extensions": ["Q3IyNAMAAABFAgAAEqwECqYCMIIBIjANBgkqhkiG9w0BA+LXpUNZoDajG6ywIDAQABEoACNd+U4xNvCvtf7m........."
},
"browserTimeout": 10000 }
],
"reporters": ["pretty"],
"functionalSuites": ["dist/functional/tests/**/*.js"]
}
extensions
属性是基本64位编码的crx(chrome扩展名)文件。
我无法找到任何可为Firefox或Safari提供类似配置的文档。我知道有Selenium这样做的具体方法,但我希望保持在Intern方式设置它。任何有关示例工作配置的帮助将不胜感激。谢谢!
答案 0 :(得分:0)
实习生实际上并没有真正处理特定于浏览器的配置,它只是在创建会话时将您直接提供的选项传递给Selenium。棘手的是找出任何给定浏览器可用的选项。
对于Firefox,您可能希望创建一个包含您感兴趣的扩展程序的配置文件,然后告诉Firefox在测试期间使用该配置文件。
您以前必须压缩并对自定义配置文件进行base64编码(基本流程概述为here),但现在如果在本地进行测试,您可能只需指向系统上的位置即可。相关的geckodriver选项描述为here。假设您使用的是zipped和base64编码的配置文件,您的配置可能如下所示:
"environments": {
"browserName": "firefox",
"moz:firefoxOptions": {
"profile": "UEsDBBQACAAIACynEk..."
}
}