Ответ 1
Используйте команду pause. Установите скорость до максимальной (Actions → Fastest), иначе она не будет работать.
Я использую Selenium IDE для Firefox и ищу команду wait. Моя проблема в том, что я хочу протестировать веб-сайт со встроенной внешней картой. Эта внешняя карта требует 3-5 секунд для загрузки.
Мои команды:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
Используйте команду pause. Установите скорость до максимальной (Actions → Fastest), иначе она не будет работать.
Это задерживает на 5 секунд:
Команда: пауза
Цель: 5000
Значение:
Это задержит работу в течение 3 секунд:
Команда: пауза
Цель: 3000
Значение:
Документация:
http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause
Для тех, кто работает с ant
, я использую это, чтобы указать паузу в 5 секунд:
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
То есть, target: 5000
и value
пусто. Как указывает ссылка:
паузы (WaitTime)
Аргументы:
- waitTime - количество времени ожидания (в миллисекундах)
Подождите заданное время (в миллисекундах)
Лучше всего, вероятно, waitForCondition
и написать функцию javascript, которая возвращает true при загрузке карты.
Это сделает то, что вы ищете на С# (WebDriver/Selenium 2.0)
var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);
И никогда использовать Thread.Sleep, потому что он делает ваши тесты ненадежными
Команда pause может использоваться непосредственно в ide в html-формате.
При использовании java или C вы можете использовать Thread.sleep(5000). Время в миллисекундах. Другие языки поддерживают "sleep 5" или time.sleep(5). у вас есть несколько вариантов для ожидания только установленного времени.
Перед командой clickAndWait
добавьте следующий код, чтобы script подождал, пока определенная ссылка будет видимой:
<tr>
<td>waitForVisible</td>
<td>link=do something</td>
<td></td>
</tr>
Практика использования команд ожидания вместо паузы в большинстве случаев более эффективна и более стабильна.
Это будет ждать, пока ваша ссылка не появится, а затем вы можете щелкнуть ее.
Command: waitForElementPresent
Target: link=do something
Value:
Тот, который я нашел, работает для тестируемого сайта:
waitForCondition | selenium.browserbot.getUserWindow(). $. active == 0 | 20000
Klendathu