如何获取表单的选择选项文本和值?

Lee*_*Lee 2 ruby nokogiri

我正试图用Nokogiri来刮掉一个表格的select元素.

例如:

<select id="colors" name="colors">
  <option class="" value="1">Blue</option>
  <option class="" value="2">Green</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想1 => 'Blue',2 => 'Green'

我试着用at_cssxpath,但都没有运气.

我猜这将是正确的轨道:

doc.at_css("#colors option").each do |d|
  puts d
end
Run Code Online (Sandbox Code Playgroud)

这给了我一个:

value
Run Code Online (Sandbox Code Playgroud)

我可以option使用xpath 获取页面上的每个文本.

min*_*omi 5

doc.css("#colors option").each do |d|
  puts d.attr("value")
  puts d.text
end
Run Code Online (Sandbox Code Playgroud)

或作为对象:

doc.css("#colors option").each_with_object({}) do |e,o| 
  o[e.attr("value")] = e.text
end
Run Code Online (Sandbox Code Playgroud)