将不胜感激任何帮助!
webdriver-manager clean
webdriver-manager更新--ie32 --proxy http://my-proxy:8080 --ignore_ssl
我的protractor.conf文件如下:
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
'proxyType': 'manual',
'httpProxy': 'http://my-proxy:8080'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
beforeLaunch: function() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
试图先通过以下方式进行测试:ng e2e
第二个:
ng e2e --config ./protractor.conf.js --specs ./e2e\app.e2e-spec.ts
并仍然得到此代理错误:
events.js:136
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND chromedriver.storage.googleapis.com chromedriver.storage.googleapis.com:443
at errnoException (dns.js:55:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:26)
ng e2e
将在后台执行webdriver-manager start/update
,webdriver-manager start
将访问“chromedriver.storage.googleapis.com”以查询最新的webdriver二进制文件,您的错误来自此处。
因为ng e2e
不能接受来自cli或预先配置的文件的代理,所以你可以设置由webdriver-manager start/update
触发的ng e2e
代理的唯一方法是Environment Variable
。
添加以下3个环境变量:
HTTP_PROXY = http://my-proxy:port
HTTPS_PROXY = http://my-proxy:port
NO_PROXY = localhost,127.0.0.1, .yourcompany.com
在新的cmd窗口中尝试ng e2e
(不要在旧的cmd窗口中尝试)
仅供参考,一旦添加3个环境变量,执行--proxy
时无需在cli中传递webdriver-manager start/update
。