Чтобы определить, полностью ли загружена страница, вам необходимо определить, какие веб-элементы на странице указывают состояние загрузки.Например, если есть маска загрузки какого-либо типа, вам нужно подождать, пока маска загрузки будет скрыта, чтобы убедиться, что страница полностью загружена.
Вот простая функция «Дождаться загрузки», которая используетExpectedConditions
класс:
С учетом следующего HTML-кода для маски загрузки:
<div id='load-mask' style='display: block'/>
Вы можете использовать следующий код для ожидания скрытия маски загрузки:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.Id("load-mask")));
Редактировать - добавлена функция ожидания только для JavaScript по запросу asker:
wait.until(driver=> ((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete"));
Это проверяет атрибут document.readyState
в JavaScript и завершает ожидание после установки readyState
до complete
.