2017-07-27 126 views
0

我有一個包含選擇框和文本域的表單。如何使用水豚填充動態表單域

根據選擇框選擇動態顯示文本字段。如果選擇框的值爲「是」,則顯示文本字段,反之亦然。 我運行一個RSpec測試,並與「是」

select 'Yes', from: 'property[have_water_bills]' 

現在我想在文本字段

fill_in 'property[irrigation_cycle_count]', with: 5 

填充值填充選擇框的值,但我得到了下面的錯誤。

Capybara::ElementNotFound: 
    Unable to find field "property[irrigation_cycle_count]" 

也就是說,水豚找不到動態元素。有誰知道如何解決這一問題?

+0

正在使用什麼事件觸發下一個字段(變更,模糊,等)的顯示工作?另外,你確定這個測試是否與Poltergeist一起運行? –

+0

單擊事件用於觸發下一個字段。是的,測試與Poltergeist – prajeesh

回答

0

最後得到這個使用下面的代碼段

page.execute_script("$('#have_water_bills').val('true').trigger('click')") 
+0

一起運行所以你可以用鍵盤無法使用你的應用程序? –

1

從選擇中選擇一個項目時,Poltergeist不會碰撞click事件。它在選項上生成focus,選項change,選項blur。這更像是如果用戶使用鍵盤而不是使用鼠標來選擇該選項。您可能應該按照邏輯在change事件上顯示文本字段,以便在人們使用鼠標或鍵盤瀏覽頁面時發揮作用。在change事件上運行顯示/隱藏邏輯也更有意義,因爲這是您真正關心的內容,而不是點擊。