2016-11-17 7 views
0
def find_a_specific_security_channel_inside_a_table 
    expect(page).to have_css('#datatableGeneric') 

    loop do 
    td = page.all('td', text: 'NAME') 
    Timeout.timeout(5) do 
     if td.empty? 
     click_link ('Next') 
     sleep 1 
     else 
     find('#datatableGeneric', :text => 'NAME').click 
     break 
     end 
    end 
    end 
    return true 
end 

テーブルの内容をループして('NAME')文字列をループし、最後にループから抜け出す必要があります。しかし、それはループから抜け出すことはありません。壊れた無限ループを停止する方法

答えて

1

メインループからではなく、タイムアウトブロックからのみ切断されます。

loop do 
    td = page.all('td', text: 'NAME') 
    break_loop = false 

    Timeout.timeout(5) do 
    if td.empty? 
     click_link ('Next') 
     sleep 1 
    else 
     find('#datatableGeneric', :text => 'NAME').click 
     break_loop = true 
    end 
    end 

    break if break_loop 
end 
+0

ありがとうございます!完璧に働いた。 –

関連する問題