Я могу рассчитать время загрузки страницы в селене с помощью следующего кода:
Код : Селен C #
using OpenQA.Selenium;
double requestStart = (long)((IJavaScriptExecutor)CTest.Driver).ExecuteScript("return window.performance.timing.requestStart");
double domComplete = (long)((IJavaScriptExecutor)CTest.Driver).ExecuteScript("return window.performance.timing.domComplete");
var totaltime = domComplete - requestStart;
Из-за ошибок и следов я былВ состоянии определить, что totaltime вышеуказанный код соответствует значению Load на рисунке ниже. Загрузка в изображении всегда совпадает со значением переменной DOMContentLoaded.
Вопрос :
- Почему значение для Готово не совпадает?Что такое Finish и как вы рассчитываете это с помощью объекта javascript window.performance.timing?
- Как рассчитать время между вводом URL-адреса в веб-браузер (и нажатием Enter) ивремя, когда весь контент на странице наконец загружен?
Следующий документ довольно хорошо описал то, что измеряла каждая временная переменная переменные метки времени разработчика mozilla , но значение Finish в chrome devtools мутновода.
Рисунок : извлечение информации о производительности из вкладки Chrome Devtool (F12) Network
Редактировать :
Спасибо @wOxxOm.Я заметил, что время Finish продолжало увеличиваться, когда я взаимодействовал с сайтом (переходил на другие страницы сайта), тогда как DOMContentLoaded и Load никогда не менялись после первоначальногособытие загрузки.Это соответствует тому, что вы говорите в своем ответе.Я переключился на использование следующего кода, как вы предложили:
double connectStart = (long)((IJavaScriptExecutor)CTest.Driver).ExecuteScript("return window.performance.timing.connectStart");
double loadEventEnd = (long)((IJavaScriptExecutor)CTest.Driver).ExecuteScript("return window.performance.timing.loadEventEnd");
double newMeasure = (loadEventEnd - connectStart) / 1000.0;
Также начал изучать функцию LCP в Chrome 77.
У меня возник еще один вопрос
Вопрос 2: Сначала я думал, что значения в объекте window.performance будут заполнены новыми значениями (разами), когда я нажал на ссылку (на веб-сайте), которая приведет меня кдругая страница на том же сайте.Однако все значения window.performance никогда не меняются после начальной загрузки веб-сайта (значения DOMContentLoaded и Load в сетевом окне Chrome devtool также никогда не менялись при маневрировании на веб-сайте).
Вопрос: Почему значения из window.performance никогда не менялись?Это потому, что это SPA (одностраничное приложение)?Я наблюдал значения DOMContentLoaded и Load в chrome devtool при переходе по другому веб-сайту (более старому), и каждый раз, когда я переходил на новую страницу в этом веб-сайте, DOMContentLoaded и Загрузить раз изменилось, чтобы показать время загрузки для каждой страницы на веб-сайте (переход на разные страницы осуществляется по ссылке в главном меню этого веб-сайта).