使用Capybara时无法选择.js

时间:2014-09-29 18:12:43

标签: ruby-on-rails coffeescript capybara jquery-chosen

我目前正在尝试在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')

如果已经在某个地方回答了这个问题,或者这没有意义,我会事先道歉。谢谢。

0 个答案:

没有答案