Ruby 你有空吗?找不到当前id
我正在为具有各种但有限id的页面编写查找程序Ruby 你有空吗?找不到当前id,ruby,capybara,Ruby,Capybara,我正在为具有各种但有限id的页面编写查找程序 @field = ['name1', 'name2'] def fieldfind @field.each do |elem| out = elem if page.has_css?(elem) end end HTML 不管什么原因,我找不到名字1。我试着找你的地盘?和elem.to_s,但没有用。有什么想法吗?您缺少的#,是按id查找元素的css选择器。它应该是: @field = ['#name1', '#name2']
@field = ['name1', 'name2']
def fieldfind
@field.each do |elem|
out = elem if page.has_css?(elem)
end
end
HTML
不管什么原因,我找不到名字1。我试着找你的地盘?和elem.to_s,但没有用。有什么想法吗?您缺少的#
,是按id查找元素的css选择器。它应该是:
@field = ['#name1', '#name2']
...
您可以使用:
page.find(:css, "input[id=name1]")
如果这样做有效,请继续并将变量动态添加到代码中
我建议您首先尝试查找一个元素(而不仅仅是改进现有的
每个块),因为您的会话对象可能指向了错误的窗口或帧。正如Baldrick提到的,css定位器不正确。但是,在更正该错误后,@字段仍会出现问题。每个。这将返回一个数组,而不是现有字段的元素或css
如果希望元素与@field中的一个css匹配,请尝试:
@field = ['#name2', '#name1']
def fieldfind
matching_css = @field.find{ |elem| page.has_css?(elem) }
page.find(matching_css)
end
或者,如果您只需要匹配的css定位器:
@field = ['#name2', '#name1']
def fieldfind
@field.find{ |elem| page.has_css?(elem) }
end
name1,#name1,input#name1都显示为负数
@field = ['#name2', '#name1']
def fieldfind
@field.find{ |elem| page.has_css?(elem) }
end