字符串的未定义方法 '^' (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

未定义的方法`^'for" 1":string(nomethoderror( ./features/support/ui_interface_react.rb:271:in`Fill_in_field'

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

您正在使用硒,我猜您正在发现的字段元素是一个复选框,在调用设置时,该复选框为truefalse,而不是字符串。

您应该在文件的顶部声明功能,因为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" }}

最新更新