2016-04-08 4 views
0

Ich habe ein Problem, alle Optionen in einem Dropdown-Menü extrahieren und dann durch die Werte durchlaufen, um den ausgewählten Wert zu erhalten. Ruby-Code unten:Wählen Sie alle Optionen aus wählen Sie dann durch die Werte durchlaufen, um den ausgewählten Wert zu finden - 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-Code:

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

Fehlermeldung: `+ ': keine implizite Konvertierung von Null in String (Typeerror)

nicht sicher, was das bedeutet, abgesehen von + = nil und keine Umwandlung der Zeichenfolge?

Antwort

1

Der Fehler wird ausgelöst, weil i.attribute('Andorra')nil zurückgegeben, die Ruby nicht in eine Zeichenfolge konvertieren konnte. Hier sind ein paar Beispiele, die Sie erhalten sollten, was Sie wollen:

# 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

Ok danke, die gearbeitet, es wird nun durch die Werte laufen, aber wenn es Andorra findet das gewählte Attribut es nicht wählen Sie es hält nur die Iterieren Werte in der Dropdown-Liste, wenn Andorra ausgewählt werden muss, sobald es in der Optionsliste gefunden wird. Wie kommt es, dass% noch funktioniert? Ich dachte, das wurde nur in Mathematik verwendet? – Speedychuck

+0

Der Prozentsatz wird zum Formatieren der Zeichenfolge verwendet. Zu Ihrem Problem gibt es nicht genügend Informationen, um eine bessere Lösung zu bieten. Schauen Sie sich dieses Beispiel an, es könnte Ihnen helfen: http://stackoverflow.com/questions/4672658/how-do-i-set-an-option-as-selected-using-selenium-webdriver-selenium-2- 0-Klien –

Verwandte Themen