Рельсы механизировать драгоценный камень - соскабливание

Я хочу заполнить некоторые параметры, которые запускают загрузку файла с помощью гема Mechanize. HTML следующий.

<div>
   <form action="" id="label_selectors" method="post">
     ...
     ...
       <div class="source form_options">                                    
              <select name="source" id="source">                                    
                <option value="btce" selected="selected">Btc-e</option>                                 
                <option value="cryptsy">Cryptsy</option>                                    
             <option value="796">796</option>                                   
                <option value="bitstamp">Bitstamp</option>                                  
                <option value="formulas">Altcoin Indexes</option>                                   
              </select>                                 
            </div>                                  
            <div class="label form_options">                                    
              <select name="label" id="label">                                  
              </select>                                 
            </div>                                  
            <div class="period form_options">                                   
          <select name="period" id="period">                                    
          <option value="15m">15 minute</option>                                    
          <option value="1h" selected="selected">1 hour</option>                                    
          <option value="1d">1 day</option>                                 
          </select>                                 
        </div>                                  
        <div class="presense form_options">                                 
          CSV: <input type="radio" name="presence" value="csv"> Chart: <input type="radio" name="presence" value="chart" checked="checked">                                 
        </div>                                  
        <div class="submit form_options">                                   
          <input type="submit" name="submit" value="OK">                                    
        </div>                                  
      </form>                                   
    </div>

Я пробовал сделать что-то вроде этого:

form = page.forms.first  
form.source = "btce"   
form.label = "BTC/USD"
form.period = "1d"
form.presense = "csv"
form.submit

Однако это не работает:

NoMethodError: undefined method `presense=' for #<Mechanize::Form:0x007fb878dc7f98

(на странице появляется опечатка, а не присутствие)

Как я мог правильно заполнить эту форму?


person octavian    schedule 19.05.2015    source источник
comment
Правильно добавьте HTML страницы. <form> тег отсутствует   -  person RAJ    schedule 19.05.2015
comment
Тег формы отсутствует.   -  person octavian    schedule 19.05.2015
comment
Странный! Я вижу </form> на странице HTML   -  person RAJ    schedule 19.05.2015
comment
Ой, извини. Выше была одна строка: <form action="" id="label_selectors" method="post">   -  person octavian    schedule 19.05.2015


Ответы (1)


Похоже, что вход presence - это переключатель.

Чтобы выбрать переключатель с помощью механизации, вам понадобится что-то вроде:

form.radiobuttons_with(name: 'presence')[0].check

Есть и другие способы выбора переключателей с помощью Mechanize - вы можете увидеть их здесь: http://docs.seattlerb.org/mechanize/GUIDE_rdoc.html

person Chris O'Sullivan    schedule 19.05.2015