How to fill out login form with mechanize in Ruby?

£可爱£侵袭症+ 提交于 2019-12-01 09:32:59

问题


Below the form that I wish to fill with Mechanize; already tried the model commonly used (example there: Using Ruby and Mechanize to fill in a remote login form mystery); but didn't succeed.

<form method="post" action="/sso/login.php" id="form-login-page">
  <div id="form-login-container-page" style="color:red;text-align:center;width:100%;margin:10px 0"></div>
  <input type="hidden" name="minimalist" value="1">
  <input type="hidden" name="SSO_Context" value="/pdf/telecharger2.php?pdfpf=&amp;pdfg=%2Fpdf%2Ftelecharger.php%3Fdir%3DJOURNAL%26file%3D20140603.pdf">
  <div class="clear">&nbsp;</div>
  <label>Email<span>*</span></label>
  <div class="insc-saisie">
    <input class="insc-saisie-champ" type="text" id="login-page" name="login" value="">
  </div>
  <div class="clear">&nbsp;</div>
  <label>Mot de passe<span>*</span></label>
  <div class="insc-saisie">
    <input class="insc-saisie-champ" type="password" id="password-page" name="password"  value="">
  </div>
  <div class="clear">&nbsp;</div>
  <label><input type="checkbox" unchecked=""></label>
  <div class="insc-saisie">Se souvenir</div>
  <div class="clear">&nbsp;</div>
  <label>&nbsp;</label>
  <div class="insc-saisie">
    <a href="javascript:showLostPassForm();">Mot de passe oublié ?</a>
  </div>
  <div class="clear">&nbsp;</div>
  <label>&nbsp;</label>
  <div class="insc-saisie">
    <input class="b-connexion" type="image" src="/img/trans.gif">
  </div>
  <div class="clear">&nbsp;</div>
  <div class="clear">&nbsp;</div>
  <label><span>*</span></label>
  <div class="insc-saisie">Saisie obligatoire</div>
  <div class="clear">&nbsp;</div>
</form>

Here my attempt

form = agent.page.parser.css('form')[1]
agent.page.forms[1]["login"] = "my_login" 
agent.page.forms[1]["password"] = "my_password"
agent.page.forms[1].submit

回答1:


The following code should work:

page = agent.get("your_page_url")

form = page.form_with(:id => 'form-login-page')
form.login = "my_login"
form.password = "my_password"
form.submit


来源:https://stackoverflow.com/questions/24270779/how-to-fill-out-login-form-with-mechanize-in-ruby

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!