首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么jquery代码在水豚测试中不起作用

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

Stack Overflow用户
提问于 2020-06-12 17:24:21
回答 2查看 89关注 0票数 1

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

我使用这段代码来选择元素

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
 NoMethodError:
   undefined method `click' for []:Capybara::Result
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-16 17:50:10

我通过在测试环境中预编译资产修复了这个问题

代码语言:javascript
复制
RAILS_ENV=test rake assets:precompile
票数 1
EN

Stack Overflow用户

发布于 2020-06-13 08:18:30

您显示的特定错误是因为您试图根据调用site_prisms elements定义的内容的结果调用clickelements定义了一个返回多个元素的方法,因此没有在上面定义click,因为click只在单个element上有意义。你可能是想要

代码语言:javascript
复制
element :search_room1_child_ages, 'select[name="filter[rooms][room1][child_ages][]"]'

在您的站点棱柱节定义中。不过,如果您打算使用很多具有类似名称的元素,那么您实际上应该使用内置的Capybara选择器类型

代码语言:javascript
复制
element :search_room1_child_ages, :select, name: "filter[rooms][room1][child_ages][]"

或者,更好的是,注册Capybara自定义选择器来真正清理您的代码。

注意:我真的不确定您的问题与标题中所述的jQuery有什么关系

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62341334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档