2016-07-14 17 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

あなたのWebアプリケーションは、ブラウザを開いて、その後、時間の短い期間の後に、それを閉じているの線に沿って何かを言うために設定の問題でした?そして、すべてのテストを終了する前に実行したいのですか? – titusfortner

+0

@titusfortner、はい - 開かれたウィンドウでアサーションを実行するために探しています – kmancusi

+0

@kmancusi、誰が新しいウィンドウを閉じますか?それはあなたがテストしているアプリケーションですか、それともWatirにそれを閉じるように伝えていますか? Watirがランダムにウィンドウを閉じるのはかなり珍しいことです。あなたのテストの一つが閉鎖を引き起こしていないと確信していますか?窓が閉まる前に常に通過するテストと同じですか? –

答えて

0

は、いくつかのリファクタリングを行なったし、それが正しく動作するようになりました - 本質的には#when_present.use

0

まだコメントはありません。

ページにアクションを実行していないと仮定して、ウィンドウを閉じる前にすべてのコンテンツをインスタンス変数にプッシュしてからアサーションを実行します。

理想的ではありませんが、動作する可能性があります。

関連する問題