Состояние автономной сети Chromedriver, по-видимому, не блокирует выборки Service Worker - PullRequest
0 голосов
/ 23 октября 2019

У меня есть сайт с Service Worker, который кэширует некоторые статические ресурсы при установке. Некоторые другие ресурсы не кэшируются, например запросы данных. Поэтому, если вы тестируете сайт в автономном режиме в Chrome, большая часть страницы отображается правильно, но данных там нет, и некоторые ошибки появляются в консоли из-за этих неудачных запросов. Пока все хорошо. Но потом я создал тест с Selenium и Chromedriver. Я загружаю этот сайт, захожу на домашнюю страницу, Service Worker правильно установлен, и затем я пытаюсь смоделировать в автономном режиме, используя:

chromeDriver.NetworkConditions = new ChromeNetworkConditions() { Latency = TimeSpan.FromSeconds(1000), DownloadThroughput = 1, UploadThroughput = 1, IsOffline = true };

Это работает нормально, как будто в тесте я пытаюсьперейдите на любую страницу после этого, она не работает и показывает сообщение «нет доступа в Интернет». Кроме того, как и ожидалось, мой сайт загружается нормально благодаря Service Worker и его кэшированным ресурсам.

Но странным является то, что сайт может загружать все, даже не кэшированные данные, такие как данные,Все выборки сайта перехватываются Service Worker, поэтому кажется, что автономный режим не влияет на выборки Service Worker, который может сохранять выборки ресурсов на сервере в автономном режиме.

(Примечание: Даже несмотря на то, что тестирование Google Chrome кажется автономным (например, он не может перейти на www.google.com), если я открываю вкладки «Сеть» или «Приложение», я не вижу этот параметр как отмеченный. Если я проверяю их все вручнуюРаботает должным образом: не кэшированные ресурсы не могут быть получены работником сервиса)

Обновление 1: я пытался напрямую взаимодействовать с Chrome Dev Tools через веб-сокеты (я использовал этобиблиотека: https://github.com/MasterDevs/ChromeDevTools) и результат тот же, запросы Service Worker работали нормально в автономном режиме)

...