2017-06-19 65 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] 
    } 
},