2008-11-18 1 views
0

[ОБНОВЛЕНИЕ 2: Мы предоставили этот вопрос более не актуальным - использование аргумента -avoidProxy для сервера Selenium означало, что Selenium-RC и наше приложение работали вместе. Итак, теперь мы можем использовать драйвер клиента языка программирования, чтобы сделать следующее. Спасибо за ответы, хотя они были полезны в том, чтобы подталкивать нас к этому]Selenium: как обновить страницу снова и снова, пока она не содержит определенный контент?

У нас есть веб-приложение, на которое мы можем отправить запросы. Эти запросы могут принимать переменную, но иногда длительное время (минуты). Запросы отправляются для определенных устройств, которые это приложение управляет

Мы можем сказать, что запрос был выполнен двумя способами, просмотрев страницу «Журнал активности» для строки, которая отмечает задание (идентификатор которого мы знаем) как завершенный , или просмотр страницы для конкретного устройства, чтобы увидеть, когда список активных заданий пуст.

Ни одна страница не выполняет автообновление или использование Ajax - нам нужно обновить страницу, проверить страницу для содержимого, которое мы хотим, обновить страницу и так далее.

Есть ли какая-то идиома с селеном для этого? Мы можем попробовать последовательность команд refresh/check/refresh/check, но это ненадежно и (когда операция завершена быстро) не требует много времени.

UPDATE для информации некоторых ответов ясно, что я пропустил :(

Мы используем Selenium Core только с .hta. Это только IE приложение (не работает в Firefox вообще), поэтому не Селена -IDE и Selenium-RC ломают другие страницы приложения, которые сильно используют Ajax (не знаю, почему, или как отследить проблему)

(Также опубликовано в OpenQA, но я думаю, что может быть больше Selenium здесь)

ответ

1

Вы используете IDE или удаленный бегун? Если вы создаете тест на любом языке, не можете ли вы просто изменить его для запуска в цикле, пока он не найдет что вы хотите. Должно быть тривиальной задачей.

+0

Только ядро ​​с .hts Мы не можем использовать Selenium-IDE becasue, это приложение только для IE (не будет запускаться вообще в Firefox), а Selenium-RC разбивает другие страницы приложения, которые сильно Ajax 'd (я понятия не имею, почему, и нет реальной идеи о том, как узнать, в чем проблема). – 2008-11-18 15:49:20

1

Вы можете использовать Selenium.html.waitForCondition(String, String). Вы просто напишите небольшую функцию JavaScript, чтобы проверить содержимое, и метод вернется после возвращения функции true.

+0

Мы пробовали это, но все сидит в постоянном цикле refresh-as-fast-as-it-can, и это приводит к сбоям IE примерно через 30 секунд. Есть ли способ сделать это обновление только каждые 30 секунд или около того? – 2008-11-18 15:50:42

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