Превращение опций select_list в массив строк в watir-webdriver? - PullRequest
2 голосов
/ 15 июня 2011

Мне нужно проверить содержимое выпадающего списка, который зависит от значения в другом поле.Я читаю допустимые параметры в массив строк из поля 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, который выполняет аналогичное преобразование?

Ответы [ 3 ]

10 голосов
/ 15 июня 2011

Нет способа сделать именно то, что вы хотите, но более краткая версия будет:

selectList = $browser.select_list(:id,"srch-status-select")
selectContent = selectList.options.map(&:text)
2 голосов
/ 16 июня 2011

Вы пробовали метод .options? Если я правильно читаю RDOC для Watir-webdriver , он должен вернуть коллекцию со всеми параметрами в списке выбора.

0 голосов
/ 07 февраля 2012

Альтернативный способ сделать это, используя циклы вместо .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
...