我是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>
。我在做什么错?
您正在使用硒,我猜您正在发现的字段元素是一个复选框,在调用设置时,该复选框为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" }}