Ruby/Watir застревает после использования goto

Я использую простой вызов browser.goto(url) на наши страницы отчетов Microsoft SQL. Он делает «переход» по первому URL-адресу, но затем просто сидит там. В настоящее время я запускаю его через командную строку.

Если я Ctrl + C, чтобы отменить его, вывод говорит:

C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:506:in `wait': Interrupt
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:355:in `goto'
    from screen.rb:37:in `SqlReports'
    from screen.rb:35:in `each'
    from screen.rb:35:in `SqlReports'
    from screen.rb:45

Итак, я предполагаю, что что-то на странице вызывает проблемы с Waitr. Я гуглил о фрагментах, но ничего не нашел. Все, что я хочу, это загрузить страницу, посидеть там определенное время, а затем перейти к следующему URL-адресу (это для экрана телевизора), ничего сложного.

Итак, я попытался разместить «начало/спасение», т.е.:

    begin
        $browser.goto(url)   
    rescue
    end

Не повезло, он просто сидит на первом URL-адресе. И я попытался обернуть это с помощью класса Timeout, то есть:

    begin
        Timeout::timeout(30) do
            $browser.goto(url) 
        end
    rescue
    end

Все равно не повезло, вылетает. Кто-нибудь знает исправление или как переопределить неявное «ожидание», которое делает Ватир при переходе?


person Bealer    schedule 11.12.2009    source источник


Ответы (2)


Я предполагаю, что на этой странице есть что-то, что мешает IE сказать: «Я закончил загрузку всего здесь».

Есть команда $browser.click_no_wait и $browser.click! Команда, поэтому, если у вас есть статическая страница со ссылкой на ваш URL-адрес, вы можете $browser.goto эту страницу и clcik_no_wait ссылку.

person mandersn    schedule 11.12.2009
comment
Не прямое исправление, но исправление тем не менее. Ваше здоровье. - person Bealer; 11.12.2009

отличное решение с использованием тайм-аутов на http://watirboy.blogspot.com/2010/07/watir-timeout-handle-browser-hangstuck.html

person Joviano Dias    schedule 27.07.2010
comment
Спасибо. Это помогло и моему сценарию автоматизации. - person Santa; 02.08.2010