首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串的未定义方法‘^’(NoMethodError)

字符串的未定义方法‘^’(NoMethodError)
EN

Stack Overflow用户
提问于 2017-04-19 18:20:56
回答 2查看 1.3K关注 0票数 0

我对Cucumber/Capybara/Ruby/Selenium非常陌生,我只是尝试用一个值来设置一个简单的字段。我正在用一个特殊的选择器找到字段,然后尝试设置它:

代码语言:javascript
复制
Capybara.add_selector(:filter_field) {xpath { |field_name| ".//div[contains(@class,'#{field_name}')]//input" }}

def fill_in_field(field_name, value)
  field = find(:filter_field, field_name)
  field.set(value)
end

未定义方法^' for "1":String (NoMethodError) ./features/support/ui\_interface\_react.rb:271:infill_in_field‘

错误发生在行field.set(value)上。我知道这个值是一个字符串,字段是一个#<Capybara::Node::Element>。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-19 18:35:00

您正在使用selenium,我猜您正在查找的字段元素是一个复选框,它在调用set时接受truefalse,而不是字符串。

票数 2
EN

Stack Overflow用户

发布于 2017-04-19 19:19:06

您应该在文件顶部声明函数,因为ruby从上到下执行如下

代码语言:javascript
复制
   def fill_in_field(field_name, value)
  field = find(:filter_field, field_name)
   field.set(value)
  end

Capybara.add_selector(:filter_field) {xpath { |field_name| ".//div[contains(@class,'#{field_name}')]//input" }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43503335

复制
相关文章

相似问题

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