Как сказал kodingkuma , более быстрый способ использования JavaScriptExecutor
Но это зависит также от структуры веб-страницы.
Я думаю, что хороший подход может быть:
Ищите в «Google», какой самый быстрый способ найти WebElements (поиск «Селена, самый быстрый способ найти элемент», вы найдете десятки примеров).
т.е. некоторые результаты:
Какой самый лучший и быстрый способ найти элемент с помощью веб-драйвера? By.XPath или By.ID или что-нибудь еще? И почему? [закрыто]
Какие самые быстрые и медленные способы поиска элементов с помощью Selenium Webdriver?
Какой самый лучший и быстрый способ поиска элементов с помощью Selenium WebDriver
А затем создайте несколько разных процедур и измерьте время, необходимое для загрузки.
(На мой взгляд, хороший способ найти элементы - это изначально проверить, перечислены ли нужные элементы в списке ('li') в списке ('ul' или 'ol') и, если возможно, создать экземпляр list (Of IWebElements), а затем зациклить каждый WebElement внутри него)
Вот пример:
Dim jsExec As OpenQA.Selenium.IJavaScriptExecutor
jsExec = CType(driver, OpenQA.Selenium.IJavaScriptExecutor)
Dim sw As New Stopwatch
Dim MyListOfWebElements As System.Collections.ObjectModel.ReadOnlyCollection(Of IWebElement)
Public Sub Selenium_Load_WebElements_By_JsExecutor()
sw.Restart()
MyListOfWebElements = jsExec.ExecuteScript("var result = document.querySelector('...here you put your css selector...'); if(result === null) {} else {result = result.querySelectorAll('li')}; return result;")
sw.Stop()
MsgBox("WebElement List (jsExec-css) - Loading time (ms): " & sw.ElapsedMilliseconds)
End Sub
Public Sub Selenium_Load_WebElements_By_Css()
sw.Restart()
MyListOfWebElements = Driver.driver.FindElements(By.CssSelector("...your css selector...")).ToList
sw.Stop()
MsgBox("WebElement List (Css) - Loading time (ms): " & sw.ElapsedMilliseconds)
End Sub
Public Sub Selenium_Load_WebElements_By_Id()
sw.Restart()
MyListOfWebElements = Driver.driver.FindElements(By.Id("...your id...")).ToList
sw.Stop()
MsgBox("WebElement List (Id) - Loading time (ms): " & sw.ElapsedMilliseconds)
End Sub
P.S. Обратите внимание, что для использования javaScriptExecutor вам необходимо использовать синтаксис Javascript между '...'.