无法在代理后面使用量角器来运行Angular> 2 e2e

lir*_*zan 3 proxy protractor angular angular-e2e

将不胜感激!

  • 我在Windows上运行
  • 我在全球范围内安装了量角器版本5.3.0
  • 在更新网络驱动程序之前,我运行了: webdriver-manager clean
  • 并更新版本如下:

webdriver-manager更新--ie32 --proxy http:// my-proxy:8080 --ignore_ssl

  • 节点版本9.2.1
  • npm版本5.7.1
  • 在启动e2e之前启动了dev服务器。

我的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 } }));
      }
    };
Run Code Online (Sandbox Code Playgroud)

尝试首先通过以下方式进行测试ng e2e

ng e2e --config ./protractor.conf.js --specs ./e2e\app.e2e-spec.ts
Run Code Online (Sandbox Code Playgroud)

仍然出现此代理错误:

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)
Run Code Online (Sandbox Code Playgroud)

yon*_*ong 5

ng e2ewebdriver-manager start/update在后台执行,并webdriver-manager start访问“ chromedriver.storage.googleapis.com”以查询最新的webdriver二进制文件,您的错误来自此处。

由于ng e2e无法接受来自cli或预配置文件的代理,因此您可以将webdriver-manager start/update触发设置为的唯一方法ng e2e是by Environment Variable

在下面添加3个环境变量:

HTTP_PROXY = http://my-proxy:port
HTTPS_PROXY = http://my-proxy:port
NO_PROXY = localhost,127.0.0.1, .yourcompany.com
Run Code Online (Sandbox Code Playgroud)

尝试ng e2e在新的cmd窗口(不要老cmd窗口试试)

仅供参考,添加3个环境变量后,无需--proxy在执行时传递cli webdriver-manager start/update