Есть ли способ остановить загрузку страницы с помощью watir-webdriver в Firefox? Или есть способ заставить что-то в моем скрипте, даже если страница все еще загружается? В какой-то момент в моем скрипте веб-сайт зависает, и скрипт в конечном итоге истечет время ожидания.
Остановить загрузку страницы
Ответы:
Вы можете использовать класс Timeout, чтобы заставить его сдаться после ожидания разумного времени (и это внутренне то, как Watir также выполняет свои ожидания)
begin
Timeout::timeout(10) do
# perform actions that may hang here
end
rescue Timeout::Error => msg
put "Recovered from Timeout"
end
Если веб-сайт зависает, вы должны иметь возможность использовать метод ожидания для тайм-аута скрипта, если элемент не появляется. В основном они используются в качестве ответа на AJAX, но должны работать и в этом случае. Например, если скрипт зависает после того, как вы щелкнули ссылку, и вы ожидаете, что следующая страница будет иметь определенный заголовок или текст:
@browser.link(:name => "Let's Hang!").click
Watir::Wait.until(30) { @browser.title == "new page" }
or
Watir::Wait.until(30) { @browser.text.include? ("confirmation text") }
or
@browser.image(:src => "awesome.jpg").wait_until_present(30)
Каждый из них будет ждать 30 секунд, пока не будет выполнено условие, прежде чем выйти с ошибкой. Вы можете изменить время (30) для выхода в окне зависания вашего приложения.
пожалуйста, ознакомьтесь с проблемой Selenium http://code.google.com/p/selenium/issues/detail?id=687 это еще не исправлено, watir-webdriver также основан на Selenium, надеюсь, он ответит на ваш вопрос.