簡體   English   中英

如何在Ruby中使用機械化填寫登錄表單?

[英]How to fill out login form with mechanize in Ruby?

在我想用機械化填寫的表格下面; 已經嘗試了常用的模型(例如: 使用Ruby和Mechanize填寫神秘的遠程登錄表單 ); 但沒有成功。

<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>

這是我的嘗試

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

下面的代碼應該工作:

page = agent.get("your_page_url")

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM