2013-02-15 3 views
3

Могу ли я ждать Web-драйвера Selenium в течение длительного периода времени?Selenium Web driver долго ждать

Хотя я могу установить команду implicitlywait, как показано ниже, я не жду времени, которое я дал.

driver.manage().timeouts().implicitlyWait(5, TimeUnit.MINUTES); 

Есть ли здесь некорректные ошибки?

В моем случае мне нужно выполнить один тестовый пример и подождать 4 минуты, а затем выполнить следующий тестовый пример. Я использую Java здесь.

+0

Это не то, что подразумеваемая функция ожидания - если у вас есть период ожидания между тестами, вам нужно будет ввести свою собственную логику. – Arran

ответ

5

На самом деле это не мой ответ. Два дня назад я увидел этот ответ здесь, но у меня не было времени его применить. Сегодня я попробовал, и именно этого я и хотел.

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

В этом случае я хотел бы ждать водителя в течение 5 минут, чтобы до выполнения периодического задания cron.

Thread.sleep(4000); приостановить выполнение программы.

+5

Другой ответ намного лучше, чем этот ответ. –

+5

Это лучше, если вы неправильно поняли вопрос Кушана. Он хотел знать, как ждать между тестами, которые лучше всего выполнять с помощью thread.sleep. Арран прав; функция ожидания не предназначена для такого рода вещей. Ответ Аимбира вернее, если вопрос заключается в том, как ждать элемента, но это не так. Кушан отправил решение вопроса, который он действительно спросил, а не тот, кто, кажется, думает, что он спросил. Это несправедливо, если его можно смягчить. – bsg

+1

У меня была такая же проблема, как и кушан, спасибо за то, что она была отправлена ​​повторно :) – Sikian

9

Учитывая, что вам нужно подождать определенного элемента, я бы сделал что-то в строках ExplicitWait, как показано ниже.

WebDriverWait wait = new WebDriverWait(driver, 300); // The int here is the maximum time in seconds the element can wait. 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someId"))); 

В этом случае вы можете использовать любой из ExpectedConditions вы хотите. Также не нужно использовать большое время ожидания в некоторых особых случаях. Это imho - хорошая практика.

+1

Thanks aimbire; Но на самом деле то, что я хочу здесь, не ждет ничего, просто просто спящий поток до тех пор, пока не будут выполнены некоторые скрипты конца. Вы можете ввести в заблуждение с неявной командой wait. – kushan

+1

Итак, вы должны использовать это для ожидания триггера (который позволяет вам знать, что DOM закончил работу с скриптами) – aimbire

Смежные вопросы