2012-04-01 20 views
5

Servis sağlayıcılarımız giriş formlarımızdan biriyle sorun yaşıyorum. Diğer siteler iyi çalışıyor ancak bazı nedenlerle giriş formunu geçemiyorum.Mechanize ve Nokogiri'yi kullanarak bir web sitesine mi giriyorsunuz?

için web sitesi giriş şu şekildedir: Ben diğer diğer sitelerde aynı kodu kullanarak giriş denedi ama çalışmıyor

<form accept-charset="UTF-8" action="/sessions" class="new_user_session" id="new_user_session" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="kaLEkPesQfeheronzGTdfnVAzpuUiC+VmjVXBu540n8=" /></div> 

     <fieldset class="big"> 

     <div class="form-row"> 
     <div class="form-label"> 
     <label for="user_session_email">Email</label> 
     </div> 
     <div class="form-field"> 
     <input id="user_session_email" name="user_session[email]" size="30" type="text" /> 

     </div> 

     </div>   

     <div class="form-row"> 
     <div class="form-label"> 
     <label for="user_session_password">Password</label> 
     </div> 
     <div class="form-field"> 
     <input id="user_session_password" name="user_session[password]" size="30" type="password" /> 

     </div> 

     <div class="form-comment"><p><a href="/password_resets/new" class="link-password-recovery">Forgot your password?</a></p></div> 
     </div> 

     <div class="form-row optional"> 
      <div class="form-field"> 
      <label for="user_session_remember_me"><input name="user_session[remember_me]" type="hidden" value="0" /><input id="user_session_remember_me" name="user_session[remember_me]" type="checkbox" value="1" /> Remember me for 2 weeks</label> 
      </div> 

     </div> 

</fieldset> 

.

:

email = '[email protected]' 
password = 'password 

# Create a new mechanize object 
agent = Mechanize.new 

# Load the postmarkapp website 
page = agent.get("https://domain.com") 

# Select the first form 
form = agent.page.forms.first 
form.field_with(:email => "user_session_email").value = email 
form.field_with(:password => "user_session_password").value = password 

# Submit the form 
page = form.submit form.buttons.first 

tırmık görevi çalıştırırken ben çıkışını şu olsun bu kimlik doğrulama yöntemini kullanarak: SO diğer questions/answers önerildiği üzere

# Create a new mechanize object 
agent = Mechanize.new 

# Load the dial9 website 
page = agent.get("http://webapplication.co.uk") 

# Select the first form 
form = agent.page.forms.first 
form.username = 'username 
form.password = 'password' 

# Submit the form 
page = form.submit form.buttons.first 

Ben de giriş için farklı bir yol denedi yakından incelenmesi üzerine
undefined method `email' for [hidden:0x3fef2ab2b994 type: hidden name: utf8 value: ✓]:Mechanize::Form::Hidden 

yukarıdaki hata formu başladı hemen sonra bir alan vardır olmasından kaynaklanmaktadır gibi görünüyor:

<form accept-charset="UTF-8" action="/sessions" class="new_user_session" id="new_user_session" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="kaLEkPesQfeheronzGTdfnVAzpuUiC+VmjVXBu540n8=" /></div> 

mıyım şey eksik? Öyleyse ne olmuş? Herhangi bir işaret takdir edilir!

cevap

5

deneyin değişen

form.field_with(:email => "user_session_email").value = email 
form.field_with(:password => "user_session_password").value = password 

için
form.field_with(:name => "user_session[email]").value = email 
form.field_with(:name => "user_session[password]").value = password 
İlgili konular