如何忽略量角器中的websocket(位于“网络”选项卡中)?

时间:2019-02-26 14:29:21

标签: angular websocket protractor

基本上,量角器挂在我们的项目中,因为“网络”选项卡中存在这种奇怪的xhr_streaming活动,是由某种无法完成的websocket引起的。量角器中有办法还是通过使用其他一些节点lib来忽略此请求?

2 个答案:

答案 0 :(得分:1)

<罢工> 量角器无法做到这一点,我认为这是一个很大的损失。进行这项工作的唯一方法是使用:

beforeAll(() => {
  browser.waitForAngularEnabled(false);
});

现在的问题是它不再等待角度事件,并且有时元素还不可见。

除了量角器之外,您还可以查看Cypress.io。就我个人而言,我认为用e2e编写更加容易和直接。

如果您使xhr请求在NgZone之外运行,也许它可以工作,并且每当需要执行某项操作时,都可以使其在区域中重新运行:

constructor(readonly nz: NgZone, readonly http: HttpClient) {}

startStreamingXhr(): void {
  this.nz.runOutsideAngular(() => this.http.get(...).subscribe((data) => {
    this.nz.run(() => {
      // do something with data
    });
  });
}

答案 1 :(得分:0)

您可以尝试使用这些选项:

选项1

https://stackoverflow.com/a/21863295/6331748

选项2

您可以尝试中止有问题的XHR。请参阅参考: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort

选项3

Protractor / Selenium XHR stays in status "pending"

让我知道这些选项是否有效。