Вопрос-ответ

Wait for page load in Selenium

Ожидание загрузки страницы в Selenium

Как заставить Selenium 2.0 ждать загрузки страницы?

Переведено автоматически
Ответ 1

Вы также можете проверить загруженную страницу, используя следующий код

IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));

wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
Ответ 2

Используйте класс WebDriverWait

Также смотрите Здесь

Вы можете ожидать отображения некоторого элемента. что-то вроде в C#:

WebDriver _driver = new WebDriver();
WebDriverWait _wait = new WebDriverWait(_driver, new TimeSpan(0, 1, 0));

_wait.Until(d => d.FindElement(By.Id("Id_Your_UIElement")));
Ответ 3

Если вы установите неявное ожидание драйвера, а затем вызовете метод findElement для элемента, который, как вы ожидаете, будет находиться на загруженной странице, WebDriver будет опрашивать этот элемент, пока не найдет элемент или не достигнет значения тайм-аута.

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

источник: неявное ожидание

Ответ 4

В общем, с Selenium 2.0 веб-драйвер должен возвращать управление вызывающему коду только после того, как он определит, что страница загружена. Если этого не произойдет, вы можете вызвать waitforelemement, который циклически повторяет вызов findelement до тех пор, пока он не будет найден или время ожидания истечет (время ожидания может быть установлено).

2024-02-03 11:35 java selenium selenium-webdriver