Protractor / Selenium嵌入式凭证放弃了对chrome的支持

时间:2017-06-19 12:41:59

标签: google-chrome selenium testing protractor

我目前正在使用一些身份验证来管理暂存环境。

我能够通过将凭据嵌入URL来运行我的测试,如下所示:

https://johndoe:foobar@app.s.product.com/#login

但是,我的测试由于chrome而失败,因此删除了此功能(https://www.chromestatus.com/feature/5669008342777856)。有没有其他方法可以访问我们的临时站点?我尝试检查弹出窗口的凭据,也许我可以发送凯斯(),但无济于事。

提前致谢!

1 个答案:

答案 0 :(得分:2)

也有这个问题。我的解决方案是创建chrome扩展,并在启动时将其添加到chrome。

  1. 在新文件夹中创建两个文件:
  2. background.js (用yourth更改用户和路径)

    chrome.webRequest.onAuthRequired.addListener(
            function(details, callbackFn) {
                console.log("onAuthRequired!", details, callbackFn);
                callbackFn({
                    authCredentials: {username: "user", password: "pass"}
                });
            },
            {urls: ["<all_urls>"]},
            ['asyncBlocking']
        );
    

    的manifest.json

    {
      "manifest_version": 2,
      "name": "Authentication for tests",
      "version": "1.0.0",
      "permissions": ["<all_urls>", "webRequest", "webRequestBlocking"],
      "background": {
        "scripts": ["background.js"]
      }
    }
    
    1. 将它们打包成crx(chrome:// extensions / - &gt; Pack extension)

    2. 将此文件添加到项目

    3. 添加到conf.js:

    4. 作为第一行

      var fs = require('fs');
      const ext64 = fs.readFileSync('./ext.crx', 'base64');
      exports.config = {
      ...
      

      和chrome选项

      capabilities: {
          browserName: 'chrome',
          chromeOptions: {
              args: ['--no-sandbox'],
              extensions: [ext64]
          }
      },