Problemem jest to, że all('#MainContent_dd')
powraca wszystkie elementy, które mają identyfikator MainContent_dd
. Zakładając, że jest to twoje menu rozwijane, a identyfikatory są unikalne, oczekuje się, że periods.length
ma wartość 1 (tj. periods
jest listą wyboru).
Co chcesz zrobić, to uzyskać elementy option
zamiast elementu .
Zakładając, że HTML jest:
<select id="MainContent_dd">
<option>Option A</option>
<option>Option B</option>
<option>Option C</option>
</select>
Następnie można zrobić:
periods = find('#MainContent_dd').all('option').collect(&:text)
p periods.length
#=> 3
p periods
#=> ["Option A", "Option B", "Option C"]
Co to robi to:
find('#MainContent_dd')
- Znajduje listy select, który chcesz dostać opcje od
all('option')
- G ETS wszystkie elementy opcji w liście select
collect(&:text)
- Zbiera tekst każdej opcji i zwraca go jako tablica
działa jak czar :) Thanks Justin będzie miał więcej te noob pytania :) –
Może to mieć problemy z wydajnością –