4

필기 테스트 중에 기본 인증을 처리하려고했습니다. 그것에 약간의 힘든 시간, 그래서 크롬 플러그인은 기본 인증이 필요한 웹 사이트에 대한 내 자격 증명을 자동으로 보냈습니다.분도기 테스트에서 크롬 드라이버에 플러그인을 추가 할 수 있습니까?

크롬 드라이버가 실행될 때마다 새로운 프로필이로드 될 때마다 테스트에 플러그인을 어떻게 추가 할 수 있습니까? 나는 https://sites.google.com/a/chromium.org/chromedriver/extensions가 있다는 것을 알고 있지만, 나는 이것을 아주 분명히 생각하지 않는다.

답변

4

당신은 chromeOptions 내부 extensions 목록을 구성해야합니다 : extensions에, 그것은 list of base-64 encoded packed Chrome extension를 제공하는 것이 중요하다고

capabilities { 
    'browserName': 'chrome', 
    'chromeOptions': { 
     'extensions': ['base64 encoded extension'] 
    } 
} 

참고.

base64로 인코딩 된 확장자을 얻으려면 .ctx 확장 파일을 읽고 base64으로 내용을 인코딩해야합니다.

>>> import base64 
>>> data = open('path_to_the_ctx_extension').read() 
>>> base64.standard_b64encode(data).decode('UTF-8') 
# outputs the encoded chrome extension which you can paste in the config 

또는, 쉽게는, fsq를 사용하여 helper.js 파일을 만들 : 예를 들어, 파이썬을 사용하여

var q = require('q'); 
var fs = require('fs'); 

exports.getCapabilities = function (filename) { 
    var deferred = q.defer(); 

    fs.readFile(filename, function (err, data) { 
     var capabilities = { 
      'browserName': 'chrome', 
      'chromeOptions': { 
       extensions: [ 
        data.toString('base64') 
       ] 
      } 
     }; 
     deferred.resolve(capabilities); 
    }); 

    return deferred.promise; 
}; 

그런 다음 각도기의 설정에서, 능력을 얻기 위해이 getCapabilities() 함수를 사용

var helper = require('./helper.js'); 

exports.config = { 

    capabilities: helper.getCapabilities('/path/to/crx/extension'), 

    ... 
} 

현재 하나의 확장 프로그램에서만 작동하므로 개선의 여지가 있습니다.

또한, 당신은 문제가있는 경우 다음과 같은 문제를 찾습니다

+0

감사합니다. 매우 도움이되었습니다. 하지만이 솔루션에 문제가 있습니다. 원하는 .crx 경로를 설정하고 테스트를 실행하면 오류가 발생하고 오류 메시지가 표시되지 않습니다. '프로세스가 종료 코드 100으로 끝났습니다. ' 나는 또한 당신이 나에게 제안한 실을 읽었지만 내 경우에 대한 해결책을 찾지 못했습니다. – andrepm

+0

스택 추적을 제공하지 않습니다. "C : \ Program Files (x86) \ JetBrains \ WebStorm 9.0.1 \ bin \ runnerw.exe" "C : \ Program Files \ nodejs \ node.exe"node_modules \ protractor \ lib \ cli .js C : \ Users \ QARJ \ WebstormProjects \ ProtractorPiloto \ config.js 셀레늄 독립 실행 형 서버 시작 ... 셀렌 독립 실행 형 서버 시작 시간 : http://192.168.44.130:61384/wd/hub 종료 코드로 프로세스가 완료되었습니다. 100' – andrepm

+0

@andrepm''extensions'을 생략하면 어떻게 될까요? 실행 중입니까? 감사. – alecxe

7

확인이 : 여기 https://github.com/andresdominguez/elementor/blob/master/bin/elementexplorer.js#L194

내가 로컬 디렉토리에서 확장을로드하고 있습니다. 확장명은 crx 파일이 아니라 압축되지 않은 버전입니다.

'chromeOptions': { 
    'args': ['--load-extension=' + extensionPath] 
} 
+0

그것은 나를 위해 일하지 못했습니다. 이게 뭐야? { '--load-extension ='+ 'C :/사용자/QARJ/AppData/지역/Google/Chrome/사용자 데이터/기본/확장/dgpgkkfheijbcgjklcbnokoleebmeokn/1.1_0'] } – andrepm

+1

아마도 사용자 데이터의 공간이 문제의 원인 일 수 있습니다. 확장 기능을 C :/tmp에 복사하여 테스트 할 수 있습니까? –

+1

하하하, 너무 효과가있어, 나는 이것을 믿을 수 없다. 고맙습니다! – andrepm

관련 문제