Как проверить цвет текста в Watir для атрибутов выпадающих списков - PullRequest
1 голос
/ 10 февраля 2012
contents = $ie.select_list(:id, "dropdown").getAllContents
puts contents.currentstyle.color

Это показывает ошибку как

1) Error:
test_01(TC_Login):
NoMethodError: undefined method `currentstyle' for

Может ли кто-нибудь помочь, так как мне нужно получить конкретную запись с определенным цветом

1 Ответ

1 голос
/ 10 февраля 2012

Предполагая, что у вас есть HTML-код, подобный следующему:

<select name="list" id="select_list">
  <option value="1" style="color:blue" SELECTED>Name1</option>
  <option value="2" style="color:green">Name2</option>
  <option value="3" style="color:green">Name3</option>
</select>

Единственный способ получить цвет опции - это прямой доступ к нему (из объекта win32ole).Следующее будет выводить цвет первой опции.

puts $ie.select_list(:id, "dropdown").document.options(0).style.color

Если вы хотите получить объект Watir :: Option, который имеет соответствующий цвет, вы можете сделать:

matching_colour = 'green'   # Colour you want

# Iterate through the options to find the first match
select_list_element = ie.select_list(:id, 'dropdown')
matching_option = nil
select_list_element.document.options.each{ |o|
  if o.style.color == matching_colour
    matching_option = select_list_element.option(:text, o.text)
    break
  end
}

# Do something with the option if one was found
if match_option.nil?
  #Nothing matches
else
  #Do something with the option, like select it
  matching_option.select
end
...