我想将一个下拉列表的选项放入一个通常在水豚中的数组中.在这个过程之后,我希望有一个字符串的arrray,包含所有下拉选项.我已经尝试了下面的代码,但无论选项计数是多少,我的数组的长度都保持为1.
periods = Array.new() periods = all('#MainContent_dd') print periods.length
解决方法
问题是all(‘#MainContent_dd’)返回所有具有id MainContent_dd的元素.假设这是您的下拉列表并且ID是唯一的,则期望periods.length为1(即句点是选择列表).
你想要做的是获取选项元素而不是select元素.
假设您的HTML是:
<select id="MainContent_dd"> <option>Option A</option> <option>Option B</option> <option>Option C</option> </select>
然后你可以这样做:
periods = find('#MainContent_dd').all('option').collect(&:text) p periods.length #=> 3 p periods #=> ["Option A","Option B","Option C"]
这样做是:
> find(‘#MainContent_dd’) – 查找要从中获取选项的选择列表> all(‘option’) – 获取选择列表中的所有选项元素> collect(& text) – 收集每个选项的文本并将其作为数组返回