我目前正在尝试在Rails应用程序中使用Capybara编写测试。我的问题是我有一个使用selected.js的下拉菜单。我能够让Capybara选择正确的用户,但是当我选择用户时,我无法触发相关的coffeescript。
从我的测试
select_from_chosen(/\Anormal1\z/, from: 'history-users')
在test_helper.rb
中def select_from_chosen(item_text, options)
Capybara.ignore_hidden_elements = false
field_id = find_field(options[:from])[:id]
within "#history_users_chosen" do
find('a.chosen-single').click
input = find("div.chosen-search input")
find('ul.chosen-results').click
within 'a.chosen-single' do
page.should have_content item_text
end
end
Capybara.ignore_hidden_elements = true
end
来自coffeescript
$("#history-users").chosen
width: '250px'
search_contains: true
disable_search_threshold: 10
no_results_text: 'No users match'
placeholder_text_single: 'Choose a user...'
.change ->
refreshMap()
refreshMap = (userid) ->
selected = $(".chosen-select")[0].selectedOptions[0]
userid = $(selected).data 'user-id'
if typeof userid != "undefined"
date = moment $("#datepicker").datepicker 'getDate'
after = date.format 'YYYY-MM-DDTHH:mm:ss Z'
before = date.add 'days', 1
.format 'YYYY-MM-DDTHH:mm:ss Z'
我得到的错误是:
TypeError: 'undefined' is not an object (evaluating '$(".chosen-select")[0].selectedOptions')
TypeError: 'undefined' is not an object (evaluating '$(".chosen-select")[0].selectedOptions')
如果已经在某个地方回答了这个问题,或者这没有意义,我会事先道歉。谢谢。