如何在Protractor中调试损坏的HTTP请求?

时间:2017-09-12 20:35:26

标签: angular protractor

以下是量角器中的测试:

// Page object

import { $, browser, by, element } from 'protractor';

export class MediaPage {

  goTo(route: string) {
    browser.get(route);
    browser.wait(browser.ExpectedConditions.visibilityOf(element(by.css('app-image-container'))), 10000);
  }

  getImageBlocks() {
    return element.all(by.css('app-image-container'));
  }
}

// Test

import { browser } from 'protractor';
import { MediaPage } from './app.po';

describe('Media page', () => {

  let page: MediaPage;

  beforeEach(() => {
    page = new MediaPage();
  });

  it ('should display list of images', () => {
    page.goTo('/media');
    //expect(page.getImageBlocks().count()).toEqual(20);
  });
});

另外,我在protractor.config中有公司代理和这些设置:

capabilities: {
    browserName: 'chrome',
    proxy: {
       proxyType: 'manual',
       httpProxy: 'http://proxy.xxxxx.com:80',
       sslProxy: 'http://proxy.xxxxx.com:80'
    },
    chromeOptions: {
        //binary: 'F:/Program/GoogleChromePortable/App/Chrome-bin/chrome.exe',
        args: ['--test-type', '--no-proxy-server', '--auto-open-devtools-for-tabs'],
        extensions: []
    }

当我在浏览器中打开页面时,它应该使用HTTP请求从API加载数据。 Appp在localhost:4200下工作,API允许跨源请求。应用程序工作正常但测试挂起10秒,而它正在等待页面加载然后死亡。我无法在Chrome中打开Dev Console,因为测试停止,我无法使用console.log(),因为控制台是不可见的。

问题:如何查看HTTP请求发生了什么以及为什么没有加载数据?

更新:我刚刚意识到这可能是因为它在代理被禁用时无法发送请求,但问题是相同的,如果我在Protractor中如何查看(调试)HTTP请求无法访问Dev Tools。此外,当我尝试启用Chrome并启用代理时,我的应用程序的加载被企业防火墙,ZScaler拦截,并且页面被阻止为不安全。是否可以强制Chrome不将有关本地页面(localhost:4200)的信息发送到防火墙?

1 个答案:

答案 0 :(得分:0)

有关如何查看HTTP请求,建议您安装流量监控工具,例如众所周知的Fiddler,并将Chrome设置为使用Fiddler代理(通常为http://127.0.0.1:8888,但您可以更改端口小提琴手的设定) 它为我节省了大量时间