2017-06-19 66 views
1

我目前正在使用一些身份验证管理临时环境。量角器/ Selenium嵌入式证书丢失对chrome的支持

我能够通过嵌入凭据URL像这样运行我的测试:

https://johndoe:[email protected]/#login

但是,我的测试失败,因为铬,下探此功能(https://www.chromestatus.com/feature/5669008342777856)。有没有其他方法可以访问我们的分期网站?我试图检查凭据弹出窗口,也许我可以发送键(),但无济于事。

在此先感谢!

+0

[Chrome 59和基本身份验证使用Selenium/Fluentlenium]的可能重复(https://stackoverflow.com/questions/44542740/chrome-59-and-basic-authentication-with-selenium-fluentlenium) –

回答

2

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

  1. 在一些新的文件夹中创建两个文件:

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(铬://扩展/ - >包扩展名)

  2. 添加文件到项目

  3. 添加到conf.js:

作为第一线

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

和Chrome浏览器选项

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