我对Cucumber / Capybara / Ruby / Selenium很新,我只是想设置一个带有值的简单字段。我正在使用特殊选择器找到该字段,然后尝试设置它:
Dim dt As DataTable = New DataTable
Dim connection As SqlConnection = New SqlConnection(connStr)
Dim adapter As SqlDataAdapter = New SqlDataAdapter(SqlQuery & SqlQuery2, connection)
adapter.Fill(dt)
DropDownList1.DataSource = dt
DropDownList2.DataSource = dt
未定义的方法`^'表示“1”:字符串(NoMethodError) ./features/support/ui_interface_react.rb:271:在`fill_in_field'
错误发生在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
行上。我知道 value 是一个字符串,字段是field.set(value)
。我做错了什么?
答案 0 :(得分:1)
你正在使用selenium,我猜你找到的字段元素是一个复选框,在调用set时需要true
或false
,而不是字符串。
答案 1 :(得分:1)
你应该在文件顶部声明函数,因为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" }}