Ожидание загрузки элементов не работает, пока я не остановлю скрипт на несколько секунд - PullRequest
0 голосов
/ 22 февраля 2019

Использование Selenium webdriver с java

Пример: у нас много полей, как на изображении ниже
Я пытался использовать явное ожидание, подобное i), ожидая загрузки элементов (но элементы загружаются динамически и незаполнить, пока я не нажму и подожду пару секунд), но не работает, пока я не остановлюсь на пару секунд.Я использую приведенный ниже метод

Я создаю среду и хотел узнать, используют ли программисты в других организациях аналогичные методы для приостановки работы сценария или он не используется?потому что мне нужно так много его использовать.enter image description here

Использование метода ниже, поскольку я не хотел использовать переполнение стека вежливости Thread.sleep.

public static void customewait(int seconds){
     Date start = new Date();
     Date end = new Date();
     while(end.getTime() - start.getTime() < seconds * 1000){
         end = new Date();
     }
 }

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Thread.sleep остановит выполнение потока на указанное время, в то время как Webdriver wait ожидает только, пока указанное условие не будет выполнено.Так что, Лучше всего использовать веб-драйвер ожидания.

By ByLocator = By.xpath("Any XPath");
int seconds = 5 * 1000; // seconds in milli.

WebDriverWait wait = new WebDriverWait(driver, seconds);
wait.until(ExpectedConditions.presenceOfElementLocated(ByLocator));
0 голосов
/ 22 февраля 2019

Вы можете использовать ожидания, предоставляемые selenium, следующим образом:

WebDriverWait wait = new WebDriverWait(driver, 5000);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("idOfElement")));

Этот код будет ожидать, пока элемент будет видимым в течение 5000 мс, и при обнаружении этого элемента инициализирует объект.

5000 - время ожидания в миллисекундах (мс)

Вы можете прочитать больше на по этой ссылке

...