字符串的未定义方法“^”(NoMethodError)
Undefined method `^' for String (NoMethodError)
我是 Cucumber/Capybara/Ruby/Selenium 的新手,我只是想设置一个带有值的简单字段。我正在查找带有特殊选择器的字段,然后尝试设置它:
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
undefined method `^' for "1":String (NoMethodError)
./features/support/ui_interface_react.rb:271:in `fill_in_field'
错误发生在行field.set(value)
。我知道 value 是一个字符串,field 是一个 #<Capybara::Node::Element>
。我做错了什么?
您使用的是 selenium,我猜您找到的字段元素是一个复选框,在调用 set 时采用 true
或 false
,而不是字符串。
您应该在文件顶部声明函数,因为 ruby 像这样从上到下执行
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" }}
我是 Cucumber/Capybara/Ruby/Selenium 的新手,我只是想设置一个带有值的简单字段。我正在查找带有特殊选择器的字段,然后尝试设置它:
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
undefined method `^' for "1":String (NoMethodError) ./features/support/ui_interface_react.rb:271:in `fill_in_field'
错误发生在行field.set(value)
。我知道 value 是一个字符串,field 是一个 #<Capybara::Node::Element>
。我做错了什么?
您使用的是 selenium,我猜您找到的字段元素是一个复选框,在调用 set 时采用 true
或 false
,而不是字符串。
您应该在文件顶部声明函数,因为 ruby 像这样从上到下执行
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" }}