Как мне заставить webrat / selenium «ждать» загрузки CSS страницы? - PullRequest
0 голосов
/ 28 августа 2009

Когда я использую вебрат в режиме селена, visit возвращается быстро, как и ожидалось. Нет проблем.

Я пытаюсь утверждать, что мои стили применяются правильно (глядя на фоновые изображения на разных элементах). Я могу получить эту информацию через JS, но кажется, что таблицы стилей не загружены и / или не были применены во время моего теста.

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

Очевидно, так как я знаю, какие стили я ищу, я могу ждать их появления. Я напишу такого помощника, но я думал, что, возможно, уже есть более общий механизм, которого я не видел.

Есть ли простой способ обнаружить, что страница действительно действительно "готова"?

Ответы [ 2 ]

2 голосов
/ 29 августа 2009

Странно. Я знаю, что wait_for_page_to_load ожидает всю страницу, включая таблицы стилей.

Если вы все еще думаете, что он не ждет, как следует, вы можете использовать wait_for_condition, который будет выполнять JavaScript и ждать, пока is вернет true Вот пример:

    @selenium.wait_for_condition "selenium.browserbot.getCurrentWindow().document.body.style.backgroundColor == 'white'", "60000"
0 голосов
/ 16 сентября 2009

Мы столкнулись с этим, когда страница сообщала о загрузке, хотя часть Cold Fusion все еще обращалась к базе данных для отображения информации. Последующая обработка может произойти слишком рано.

Посмотрите на абстрактный класс Wait в Selenium API. Вы можете написать собственное пользовательское предложение before (), которое может проверять наличие определенного текста, текста, который нужно удалить (в случае плавающего сообщения, которое исчезает после завершения загрузки), или любого другого события, которое вы можете проверить в Селеновый репертуар. На странице API даже есть хороший пример, который очень помогает в настройке.

...