为什么jquery代码在水豚测试中不起作用



我有一个选择框来选择孩子的数量,当我选择选项时,必须出现其他选择框才能选择年龄。

我使用此代码来选择元素

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

我使用场地棱镜宝石

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.搜索_房间1_儿童_年龄。单击

NoMethodError:
undefined method `click' for []:Capybara::Result

您显示的特定错误是因为您尝试根据调用由 site_prismselements定义的内容的结果调用clickelements定义了一个返回多个元素的方法,因此没有定义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有什么关系,如其标题中所述

我通过在测试环境中预编译资产来解决问题

RAILS_ENV=test rake assets:precompile

相关内容

  • 没有找到相关文章

最新更新