Автоматизация аутентификации с помощью Watir - PullRequest
3 голосов
/ 25 ноября 2011

Я искал и искал это, но я не могу заставить эту автоматизацию работать.Воспользовавшись всеми кодом базовой аутентификации на сайте OpenQA, я все еще не могу заставить окно аутентификации работать.

Я использую IE8 с веб-сайтом, на котором включен HTTPS.

Используя Watir, я могу открыть IE на нужной странице, но все, что я пробую, не позволяет мне вводить какой-либо контент в форму входа.

Вот код, который я сократил до:

require 'watir'

url = 'https://thewebsite.com' 
@username = 'myusername'
@password = 'mypassword' 

browser = Watir::Browser.new
browser.goto url
sleep 5 
Watir.autoit.WinWait('Blank Page')
Watir.autoit.Send(@username)
Watir.autoit.Send('{TAB}')
Watir.autoit.Send(@password)
Watir.autoit.Send('{ENTER}')

У кого-нибудь есть предложения или ссылки?Большая часть информации, которую я нашел на сайте OpenQA, кажется устаревшей.

Спасибо

Ответы [ 3 ]

1 голос
/ 25 ноября 2011

Вы пробовали RAutomation вместо autoit?

0 голосов
/ 12 апреля 2013

Я пришел сюда с той же проблемой, хотя похоже, что ответ отличается из-за последней версии Watir и watir-webdriver. Я покажу, что работает для меня, используя:

watir (4.0.2 x86-mingw32)
watir-classic (3.6.0)
watir-webdriver (0.6.2)

У Ватира больше нет встроенного autoit, и похоже, что другое найденное мной предложение (require 'watir/ie') больше не работает. В духе решения этой проблемы с оригинальной технологией:

Убедитесь, что после установки AutoIT была зарегистрирована в Windows. Перейдите в dll AutotIT (установленный с гемом rautomation, упомянутым выше, думаю, Watir установил это)

cd C:\Ruby193\lib\ruby\gems\1.9.1\gems\rautomation-0.8.0\ext\AutoItX
regsvr32 AutoItX3.dll

Тогда код ниже должен работать

require 'watir'
require 'win32ole'

$b = Watir::Browser.new :ie
begin
    $b.goto( 'http://10.254.157.34:8383/mywebsite/stuff.html');
rescue Exception => e
    puts "Trapped Error, expecting modal dialog exception"
    puts e.backtrace 
    puts "Continuing"
end

login_title = "Windows Security" #For Windows 7, dialog title for anything else
username = "myuser"
password = "mypassword"

sleep 1 #Just in case
au3 = WIN32OLE.new("AutoItX3.Control")
win_exists = au3.WinWait(login_title, "", 5)    

if (win_exists > 0)
    au3.WinActivate(login_title)
    au3.Send('!u')
    au3.Send(username)
    au3.Send('{TAB}')
    au3.Send(password)
    au3.Send('{ENTER}')
end
0 голосов
/ 17 декабря 2011

Вы пытались использовать URL с пользователем и передать его?например, url = 'https://username:password@thewebsite.com',, вы можете попробовать посетить URL вручную в браузере, если он работает вручную, он должен работать и в вашем скрипте.

...