У меня возникла проблема при попытке измерить время загрузки веб-приложения с помощью VB. NET: я нашел несколько сообщений об этом, предлагая использовать следующую функцию:
Public Shared Function GetLoadTime(my_url As String) As String
' open IE, navigate to the website of interest and loop until fully loaded
Dim start_time
Dim elapsed_time
Dim webBrowserForPrinting As System.Windows.Forms.WebBrowser = New System.Windows.Forms.WebBrowser
Dim IE As SHDocVw.InternetExplorer
IE = CreateObject("InternetExplorer.Application")
start_time = Timer
With IE
.Visible = True
.navigate(my_url)
.Top = 50
.Left = 530
.Height = 400
.Width = 400
End With
Do Until Not IE.Busy And IE.ReadyState = 4
System.Windows.Forms.Application.DoEvents()
Loop
Dim title As String
elapsed_time = (Timer - start_time)
MsgBox("The time required to load the webpage was " & Format(elapsed_time, "0.0000") & " seconds.")
Return Format(elapsed_time, "0.0000")
End Function
Проблема Я имею с этим кодом, что время, которое я получаю как вывод, не является правильным. Приложение, которое мне нужно запустить, имеет несколько перенаправлений перед полной загрузкой, и время, которое я получаю в качестве выходных данных, составляет только время загрузки до первого перенаправления.
Я также пытался проверить заголовок приложения, загруженного до выхода из Do. До добавления также этой проверки:
Do Until Not IE.Busy And IE.ReadyState = 4 And InStr(IE.Document.title, "Salesforce") > 0
Но я всегда получаю исключение:
Исключение: «System.Runtime.InteropServices.COMException» в GetLoadTimeTest.exe Дополнительная информация: ошибка HRESULT E_FAIL возвращена после вызова компонента COM.
Вы можете помочь мне чтобы понять, что я могу с этим поделать? Заранее спасибо, Роберто