<input type="radio" name="gender" id="radio-male" value="male" checked> <label for="radio-male">男性</label> <input type="radio" name="gender" id="radio-female" value="female"> <label for="radio-female">女性</label>
# value属性が "female" であるラジオボタンのみをチェック状態に form.radiobutton_with(:value => 'female').check # ラベルテキストに女性を含むラジオボタンのみをチェック(正規表現はUTF-8) form.radiobutton_with(:text => /女性/).checkMechanize::Form#radiobuttons_with で #name を検索すると、「ラジオボタンのグループ」を抽出することができます。
# genderと名づけられた"グループ"のうちの2つ目のラジオボタンをチェック form.radiobuttons_with(:name => 'gender')[1].check
<input type="radio" name="gender" id="radio-male" value="male" checked>という HTML で表されるチェックボックスだった場合、name メソッドは文字列 "gender" を返します。
<input type="radio" name="gender" id="radio-male" value="male" checked> <label for="radio-male">男性</label>という HTML で表現されるラジオボタンだった場合、text メソッドは文字列 "男性" を返します。ラジオボタンに関連付けが無い場合は nil を返します。
<form name="f"> <input type="radio" name="gender" id="radio-male" value="male" checked> <label for="radio-male"> 男性 </label>という HTML で表現されるラジオボタンだった場合、text メソッド使用時に合致するのは "男性" ではなく
agent.page.forms[0].radiobutton_with(:text => " \n 男性 \n".toutf8)となります。HTML 上での改行は一律 \n です。このへんはなんだかもう精密に書くのがひたすらめんどくさいので、誤爆が起こらない範囲で
agent.page.forms[0].radiobutton_with(:text => /男性/) #utf-8などとすることをお勧めします。
<input type="radio" name="gender" id="radio-male" value="male" checked>という HTML で表されるチェックボックスだった場合、value メソッドは文字列 "male" を返します。
# <input type="radio" name="gender" value="male"> form.radiobutton_with(:name => 'gender'){|radio| radio.check p radio.query_value #=> [['gender', 'male']] }このラジオボタンオブジェクトの #checked が真を返す場合に Mechanize::Form#build_query 内で呼ばれます。真であるようなラジオボタンがフォーム内にひとつもなかった場合は何も送りません(RFC 1866 の実装要求に(他のブラウザ同様)沿っていません)。