Прекратить загрузку страницы watir-webdriver - PullRequest
2 голосов
/ 20 октября 2011

Есть ли способ остановить загрузку страницы с помощью watir-webdriver на firefox? Или есть способ заставить что-то в моем скрипте, даже если страница все еще загружается? В какой-то момент в моем сценарии веб-сайт зависнет, и сценарий в конце концов остановится.

Ответы [ 3 ]

3 голосов
/ 02 марта 2012

Вы можете использовать класс Timeout, чтобы заставить его сдаться после ожидания разумного количества времени (и это внутренне, как Watir выполняет, это также ждет)

begin
  Timeout::timeout(10) do
    # perform actions that may hang here
  end
rescue Timeout::Error => msg
  put "Recovered from Timeout"
end
2 голосов
/ 20 октября 2011

Если веб-сайт зависает, вы можете использовать метод ожидания для тайм-аута сценария, если элемент не появляется. Они в основном используются как ответ на AJAX, но они должны работать и для этого условия. Например, если скрипт зависает после нажатия на ссылку, и вы ожидаете, что следующая страница будет иметь определенный заголовок или текст:

@browser.link(:name => "Let's Hang!").click
Watir::Wait.until(30) { @browser.title == "new page" }

или

Watir::Wait.until(30) { @browser.text.include? ("confirmation text") }

или

@browser.image(:src => "awesome.jpg").wait_until_present(30)

Каждый из них будет ждать 30 секунд, пока условие будет выполнено, прежде чем выйти с ошибкой. Вы можете изменить время (30) для выхода из окна зависания вашего приложения.

1 голос
/ 17 декабря 2011

пожалуйста, посмотрите на проблему Selenium http://code.google.com/p/selenium/issues/detail?id=687 она еще не исправлена, watir-webdriver также основан на Selenium, надеюсь, он ответит на ваш вопрос.

...