Intern.js:通过config加载Firefox / Safari扩展

时间:2018-05-16 23:19:46

标签: selenium firefox safari intern

我正在使用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方式设置它。任何有关示例工作配置的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

实习生实际上并没有真正处理特定于浏览器的配置,它只是在创建会话时将您直接提供的选项传递给Selenium。棘手的是找出任何给定浏览器可用的选项。

对于Firefox,您可能希望创建一个包含您感兴趣的扩展程序的配置文件,然后告诉Firefox在测试期间使用该配置文件。

您以前必须压缩并对自定义配置文件进行base64编码(基本流程概述为here),但现在如果在本地进行测试,您可能只需指向系统上的位置即可。相关的geckodriver选项描述为here。假设您使用的是zipped和base64编码的配置文件,您的配置可能如下所示:

"environments": {
  "browserName": "firefox",
  "moz:firefoxOptions": {
    "profile": "UEsDBBQACAAIACynEk..."
  }
}