我对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:infill_in_field‘
错误发生在行field.set(value)上。我知道这个值是一个字符串,字段是一个#<Capybara::Node::Element>。我做错了什么?
发布于 2017-04-19 18:35:00
您正在使用selenium,我猜您正在查找的字段元素是一个复选框,它在调用set时接受true或false,而不是字符串。
发布于 2017-04-19 19:19:06
您应该在文件顶部声明函数,因为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" }}https://stackoverflow.com/questions/43503335
复制相似问题