将select_list选项转换为watir-webdriver中的字符串数组?

我需要检查选择列表下拉列表的内容,这取决于另一个字段中的值。 我正在将有效选项读入CVS字段中的字符串数组,并通过执行以下操作进行比较;

selectContent = [] $browser.select_list(:id,"srch-status-select").options.each {|option| selectContent << option.text} assert_equal(validContent,selectContent,"Status drop down has wrong values") 

这是正确的还是现有的select_list方法进行类似的转换?

没有方法可以完全按照您的要求进行操作,但更简洁的版本是:

 selectList = $browser.select_list(:id,"srch-status-select") selectContent = selectList.options.map(&:text) 

你试过.options方法吗? 如果我正在正确读取Watir-webdriver的RDOC ,它应该返回一个包含选择列表中所有选项的集合。

使用循环而不是.map执行此操作的另一种方法是:

 elems = Array.new values = Array.new elems = @b.select_list(:id => "selectListId").options 0.upto(elems.length - 1) do |i| values.push elems[i].text end 

然后显示选项

 0.upto(values.length - 1) do |i| puts values[i] end