我有一个选择框选择孩子的数量,当我选择选项时,其他选择框必须出现以选择年龄。
我使用此代码选择元素
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
您显示的特定错误是因为您试图根据site_prisms click
定义的内容调用elements
。 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有什么关系