2016-07-14 4 views
0

Я использую watir-webdriver и rspec для записи утверждений. У меня возникают проблемы с выполнением утверждений на элементах нового окна.
Это мой метод я использую:rspec утверждает в новом окне

def open_window 
    foobar = @browser.window(:title, 'Foo View') 
    return foobar 
end 

Это, как я пишу мою спецификацию:

describe 'testing a new window' do 
    it 'opens a new window' do 
     open_window.use 
     sleep 2 # hackey way of getting it to work so far 
    end 
    it 'sees elements on page' do 
     # code for expectations of elements 
     # Several more it blocks 
    end 
end 

Что происходит: Если я не поставил в команде sleep в течение неопределенного количества времени, кажется, что окно закрывается, прежде чем оно сможет выполнить все утверждения. Есть ли какой-то wait, который можно применить, чтобы открыть новое окно через всю спецификацию?

+1

Ваш веб-приложение открывает браузер, а затем закрыть его после короткого периода времени ? И вы хотите выполнить все свои тесты до закрытия? – titusfortner

+0

@titusfortner, да - я ищу его для запуска утверждений в окне, которое он открывает – kmancusi

+0

@kmancusi, который закрывает новое окно? Это приложение, которое вы тестируете, или вы говорите Ватиру о его закрытии? Для Ватира было бы довольно необычно закрыть окно. Вы уверены, что один из ваших тестов не вызывает закрытия? Всегда ли это тот же набор тестов, который проходит до закрытия окна? –

ответ

0

ли некоторые рефакторинга, и он правильно работает в настоящее время - по сути это был вопрос о создании сказать что-то вдоль линий #when_present.use

0

Не могу прокомментировать.

Когда окно доступно, если вы не выполняете действия на странице, просто доведите все содержимое до переменной экземпляра до его закрытия, а затем запустите свои утверждения против этого?

Не идеальный, но он может работать.