我有一个选择框来选择孩子的数量,当我选择选项时,必须出现其他选择框来选择年龄。
我使用这段代码来选择元素
search_page.search_room1_child.click
search_page.search_room1_child_options[1].click
search_page.search_room1_child_ages.click
search_page.search_room1_child_ages_options[8].click我使用site-prism gem
element :search_room1_child, 'select[name="filter[rooms][room1][child]"]'
elements :search_room1_child_options, 'select[name="filter[rooms][room1][child]"] option'
elements :search_room1_child_ages, 'select[name="filter[rooms][room1][child_ages][]"]'
elements :search_room1_child_ages_options, 'select[name="filter[rooms][room1][child_ages][]"] option'我得到了这个错误
失败/错误: search_page.search_room1_child_ages.click
NoMethodError:
undefined method `click' for []:Capybara::Result发布于 2020-06-16 17:50:10
我通过在测试环境中预编译资产修复了这个问题
RAILS_ENV=test rake assets:precompile发布于 2020-06-13 08:18:30
您显示的特定错误是因为您试图根据调用site_prisms elements定义的内容的结果调用click。elements定义了一个返回多个元素的方法,因此没有在上面定义click,因为click只在单个element上有意义。你可能是想要
element :search_room1_child_ages, 'select[name="filter[rooms][room1][child_ages][]"]'在您的站点棱柱节定义中。不过,如果您打算使用很多具有类似名称的元素,那么您实际上应该使用内置的Capybara选择器类型
element :search_room1_child_ages, :select, name: "filter[rooms][room1][child_ages][]"或者,更好的是,注册Capybara自定义选择器来真正清理您的代码。
注意:我真的不确定您的问题与标题中所述的jQuery有什么关系
https://stackoverflow.com/questions/62341334
复制相似问题