Невозможно обработать окна базовой аутентификации - PullRequest
0 голосов
/ 13 апреля 2011

Я работаю над всплывающими окнами, то есть обрабатываю окна базовой аутентификации. Пожалуйста, найдите приведенный ниже код, который я пытаюсь запустить с помощью теста

{

require 'watir/ie'

require 'win32ole'

require 'watir/WindowHelper'

ie=Watir::IE.new

ie.goto "http://www.google.com"

helper = WindowHelper.new

helper.logon('Connect to proxy1','Mohammed','WE8SR')        # where title=Connect to Proxy1 is the auth window,User name= Mohammed and Password=WE8SR.
puts x.inspect

ie.close

}

Что происходит, если имя пользователя и пароль никогда не вводятся вОкно аутентификации и отображается Timedout Error.

ruby google_search.rb 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.7.1/lib/watir/ie-class.rb:494:in sleep': execution expired (Timeout::Error) 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.7.1/lib/watir/ie-class.rb:494:in block in wait' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.7.1/lib/watir/ie-class.rb:491:in wait' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.7.1/lib/watir/ie-class.rb:357:in goto' 
from google_search.rb:96:in `<main>' 
>Exit code: 1

Это проблема с версией Ruby 1.9.2 , которую я использую?

Я изменилкод для метода logon в WindowHelper.rb и попытался это сделать.

// Actual method in the "WindowHelper.rb" file
{

    def logon(title,name = 'john doe',password = 'john doe')

        @autoit.WinWait title, ""

        @autoit.Send name

        @autoit.Send "{TAB}"

        @autoit.Send password

        @autoit.Send "{ENTER}"

    end
 }

код, который я модифицировал и иногда находил работающим

{

        def logon(title,name,password)

        @autoit.WinWait title, ""

        @autoit.Send name

        @autoit.Send "{TAB}"

        @autoit.Send password

        @autoit.Send "{ENTER}"

    end

}

Я пытался найти решениев разных блогах.Подскажите, если я что-то упустил.

1 Ответ

0 голосов
/ 14 апреля 2011

Я полагаю, ваш скрипт остановлен перед обработкой BASIC Authentication, потому что в вашем тексте ошибки сказано, что в методе ожидания произошла ошибка тайм-аута, используемая в методе goto.*

require 'watir/ie'
require 'win32ole'
require 'watir/WindowHelper'

ie=Watir::IE.new

ie.ie.navigate "http://www.google.com"

helper = WindowHelper.new

helper.logon('Connect to proxy1','Mohammed','WE8SR')        # where title=Connect to Proxy1 is the auth window,User name= Mohammed and Password=WE8SR.
puts x.inspect

ie.close
...