Адаптация модального диалогового сценария к Firefox - PullRequest
0 голосов
/ 13 апреля 2011

Я адаптирую свои регрессионные тесты для тестирования веб-приложения в Firefox. Кажется, самый большой камень преткновения - как автоматизировать модальные диалоги в Firefox.

В т. Е. Я использую варианты скрипта ниже, но он не работает в Firefox. Есть ли альтернатива, которая будет работать как в ie, так и в firefox?

popup=Thread.new {
    autoit=WIN32OLE.new('AutoItX3.Control')
    ret=autoit.WinWait(title,"",60)
    if (ret==1)
        puts "There is popup."
        autoit.WinActivate(title)
        button.downcase!
        if button.eql?("ok") || button.eql?("yes") || button.eql?("continue")
            autoit.Send("{Enter}")
        else
            autoit.Send("{tab}")
            autoit.Send("{Enter}")
        end
    elsif (ret==0)
        puts "No popup, please check your code."
    end
}
at_exit { Thread.kill(popup) }
end

   button.click_no_wait

   check_for_popups("Message from webpage", "OK")    

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

Учитывая, что вы говорите о диалоговом окне, созданном на javascript, я действительно должен спросить, есть ли смысл в самом деле их тестировать?

В основном это равнозначно тестированию функциональности браузера

Если вы говорите о типе всплывающих окон, описанных здесь http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups, то я думаю, что первое решение переопределения javascript может быть вашим лучшим кроссплатформенным вариантом.

Проблема с модальными диалогаминапример, это то, что они по сути являются пользовательским интерфейсом, даже если это происходит на уровне ОС, он больше не находится внутри DOM браузера, и, следовательно, вам нужны инструменты, специфичные для ОС (например, вещи, зависящие от win32ole, такие как autoit)для создания необходимого взаимодействия с собственным пользовательским интерфейсом и кнопками нажатия, отправки нажатий клавиш и т. д. Большинство представленных решений, как мне кажется, должны работать с FF на окнах (с правильным переименованием ожидаемых заголовков окон и т. д.), но не на Mac или *ОС nix.Это означает, что вам нужно отдельное решение для каждой ОС, что является проблемой.

Может быть, просто будет проще убедиться, что вы можете найти подходящий материал, который будет запускать событие в HTML страницы, так что вы знаете,событие будет запущено, а затем переопределит все, так что это не так.В конце концов, ваша задача не проверять, что браузер открывает локальный диалог, когда в javascript вызывается что-то вроде alert('This is an alert box').Вы обеспокоены тем, что в HTML данный элемент закодирован для запуска необходимого события, например, что есть что-то вроде onClick = 'javascript:x = confirm('Do you really want to do this');", связанное с элементом

0 голосов
/ 07 мая 2011

У меня возникла похожая проблема в Firefox (и мне нужно тестировать в Firefox). Я вижу код, вызывающий Javascript, но когда я пытаюсь переопределить, как описано выше, ничего не происходит. Есть ли какой-нибудь способ обойти это? Ожидаемые обновления для Watir? ; -)

...