【问题标题】:Intern.js: Load Firefox/Safari extension via configIntern.js:通过配置加载 Firefox/Safari 扩展
【发布时间】:2018-05-16 23:19:45
【问题描述】:

我正在使用 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 属性是一个 base 64 编码的 crx(chrome 扩展名)文件。

我找不到任何可以为 Firefox 或 Safari 提供类似配置的文档。我知道有 Selenium 特定的方法可以做到这一点,但理想情况下,我希望保持在实习生的方式中进行设置。任何有关示例工作配置的帮助将不胜感激。谢谢!

【问题讨论】:

    标签: selenium firefox safari intern


    【解决方案1】:

    Intern 实际上并不处理特定于浏览器的配置本身,它只是在创建会话时将您提供的选项直接传递给 Selenium。棘手的事情是弄清楚任何给定浏览器都可以使用哪些选项。

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

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

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

    【讨论】:

    • 谢谢@jason0x43 - 这周我要试试你的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    相关资源
    最近更新 更多