2016-04-08 11 views
0

Bir açılır menüdeki tüm seçenekleri ayıklamak ve sonra değer almak için değerlerin arasında yineleme yapmakla ilgili bir sorun yaşıyorum. Aşağıda Yakut kodu:Seçerek tüm seçenekleri seçin ve ardından seçilen değeri bulmak için değerleri yineleyin - Selenium Webdriver

select = @@driver.find_element(:id, 'dropdown_7') 
      all_options = select.find_elements(:tag_name, 'option') 
      all_options.each do |i| 
       puts 'Value is: ' + i.attribute('Andorra') 
       i.click 

HTML kodu:

<select id="dropdown_7" name="dropdown_7" class=" piereg_validate[required]"><option value="Afghanistan">Afghanistan</option></select> 

Hata Mesajı: `+ ': String (TypeError) içine nil örtülü hiçbir dönüşüm

emin değil bu durum + dışında ne anlama geldiğini = nil ve dizgenin dönüşümü yok mu?

cevap

1

i.attribute('Andorra')nil döndüğünden hata atıldı, bu nedenle ruby ​​bir dizeye dönüştürülemedi. İşte size almalısınız birkaç örnek istediğini şunlardır: bundan böyle kendi seçilmiş nitelik Andorra bulduğunda ancak bu sadece yineleme tutar seçmez, değerler yineleme olduğu çalıştı

# print the name attribute 
puts 'Name is: %s' % i.attribute('name') 

# print the value attribute 
puts 'Value is: %s' % i.attribute('value') 

# print the text content 
puts 'Text is: %s' % i.text 
+0

Tamam teşekkürler açılır menüde, seçenekler listesinden bulduğunda Andorra'yı seçmek gerektiğinde. Yine de yakacak yeni bir şey, nasıl oluyor da% çalışıyor? Bunun sadece matematikte kullanıldığını sanıyordum? – Speedychuck

+0

Dizgiyi biçimlendirmek için yüzde kullanılır. Sorununuza gelince, daha iyi bir çözüm sağlamak için yeterli bilgi yok. Bu örneğe bir bakın, size yardımcı olabilir: http://stackoverflow.com/questions/4672658/how-do-i-set-an-option-as-selected-using-selenium-webdriver-selenium-2- 0-clien –