Как я могу игнорировать websocket (находится на вкладке Network) в транспортире? - PullRequest
0 голосов
/ 26 февраля 2019

В основном Protractor зависает в нашем проекте, потому что есть странная xhr_streaming активность на вкладке Сеть, вызванная каким-то видом веб-сокета, который никогда не заканчивается.Есть ли способ в транспортире или с помощью некоторого дополнительного узла lib, чтобы игнорировать этот запрос?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы можете попробовать использовать эти опции:

Опция 1

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

Опция 2

Вы можете попытаться прервать XHR, о котором идет речь.См. Ссылку: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort

Вариант 3

Транспортир / Selenium XHR остается в состоянии «в ожидании»

Пустья знаю, работал ли какой-либо из этих вариантов.

0 голосов
/ 26 февраля 2019

Транспортир не может этого сделать, и, на мой взгляд, это большая потеря.Единственный способ сделать эту работу - использовать:

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
    });
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...