2009-12-11 4 views
1

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

Если я 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 

не повезло, он просто сидит на первой ссылке. И я пробовал обертывание, используя класс Timeout, то есть:

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

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

+0

страницы, открывается без каких-либо проблем, когда вы делаете это вручную? –

+0

Я бы порекомендовал разместить это также на http://groups.google.com/group/watir-general/ –

+0

Yep работает отлично вручную. Предоставляя загрузку страницы, затем выполняется какой-то запрос внутренней страницы для сбора данных отчета. Очевидно, что Watir знает, загрузилась ли страница. Ниже приведенное предложение щелчка выглядит как хорошая, если хакерская работа. – Bealer

ответ

2

Мое предположение было бы в том, что на этой странице есть что-то, что заставляет IE говорить «Я закончил загрузку всего здесь».

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

+0

Не прямое исправление, а исправление не менее. Приветствия. – Bealer

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