ruby で win32ole を用いてサイトにログインする方法(ボタンのクリックができない)


下記のサンプルコードを書きました。

require 'win32ole'
ie = WIN32OLE.new 'InternetExplorer.Application'
ie.Visible = true
ie.Navigate('https://j-trading.okasan-online.co.jp/web/')
while ie.busy do sleep 1; end;
doc = ie.document
doc.body.all.tags("INPUT").each{|item|
if item.name == "loginTuskLoginId" then
item.value = "ユーザID"
elsif item.name == "gnziLoginPswd" then
item.value = "ユーザPassword"
elsif item.name == "buttonLogin" then
item.click()
end
puts "#{item.name} = #{item.value}"
}

item.click()と書いてもログインボタンを押してくれないし、最後の行で
ie.Navigate('https://j-trading.okasan-online.co.jp/web/cmnCauSysLgiInterruptAction.do')
とログインボタンのリンク先に行くように書き足したら、フォームの情報が全て消えてログインできなくなってしまいます。rubyのwin32oleを使って上記のサイトにログインできる方法を教えていただきたいです。
なお、使っている環境は下記です。
ruby 1.9.3p125
Windows Internet Explorer 9 更新バージョン:9.0.13
OS : Windows 7 Home Premium 64 ビット
宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/02/24 00:59:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

そのページへの直接リンクはできません。
https://j-trading.okasan-online.co.jp/web/cmnGenInvTopAction.do
からページ遷移しないと、ログインできないようになっています。

他4件のコメントを見る
id:Ganan

oil999さんにメールで私のログインIDとパスワードを送ればロジックを教えていただけるのならそうします。ポイントいくら以上ならやっていただけるのでしょうか?よろしくお願いします。

2013/02/23 19:08:35
id:oil999

申し訳ありませんが、重要な取引用アカウントを管理する責任を負えませんので、遠慮させていただきます。

2013/02/23 20:00:49
  • id:windofjuly
    うぃんど 2013/02/23 18:49:27
    oil999の直接リンクはできませんという言葉に真実味はありません。

    私も岡三証券のアカウントは持ってないのですが、
    理由みたいなものは見えた気がするのでrubyの質問は閉じずに2、3日待ってくださいね。
  • id:Ganan
    ご回答ありがとうございます。質問は閉じないとおきます。ご面倒ならポイントを引き上げますので、そのときはおっしゃってください。よろしくお願いします。
  • id:windofjuly
    うぃんど 2013/02/23 19:29:20
    ポイントの引き揚げは不要です。
    そんなことをするとポイントだけが目的の輩の餌になるだけです。

    私はポイントのために知りもしないことを平然と書き連ねたり、
    検索した内容を吟味せずに繋ぎ合わせてそれっぽくした回答を書いたりする人とは違いますので…。

    2、3日とはいいつつも実は取り急ぎ調べてみました。

    WindowsXP+IE8であればページ遷移を受け付けましたので、
    (ID持ってないので再入力を要求されただけですが…)
    IE9のセキュリティ強化が問題みたいです。

    そこでさらに調べてみると次のような書き込みを見つけました。
    http://comments.gmane.org/gmane.comp.lang.ruby.japanese/7608
    周囲にWindows7の環境が無いので(XPと8しかない)テストできてないのですが、
    上記書き込みにあるようにclickにnilをつけてやってみてください。

    これで動けば質問キャンセルですね。oil999の釈明が楽しみです。

    動かなければもう少し調べてみます。
    動いてもこのあとまではアカウント無いのでサポートできませんよ。
  • id:Ganan
    ご丁寧に回答いただきありがとうございます!家に帰ったら早速試してみます。質問をキャンセルすると私のポイント支払い率が下がってしまい、今後の質問を答えていただける人が減ってしまうかもしれませんので、出来れば回答のところで、なんでも宜しいですので、書き込みをしていただけないでしょうか?よろしくお願いします。
  • id:windofjuly
    うぃんど 2013/02/23 20:36:57
    まずはご報告を待つことにします。

    今の人力検索にポイント支払い率を気にする人は見当たりません。
    ただ単に技術者が減っているだけです。
  • id:Ganan
    遅くなりました。clickにnilを代入すると無事ログインできました!
    自分はプログラミング能力は高くないので、これはかなり時間をかけて解決されなかった問題だったので、
    非常にうれしいです!なんとお礼をすれば。。とにかくご希望通りこの質問はキャンセルさせていただきます。
  • id:windofjuly
    うぃんど 2013/02/24 01:19:21
    了解です。

    お力になれたようで嬉しいです。ではまたどこかで…。
  • id:Ganan
    ほんの気持ちもしてポイントやカラーボックスを差し上げたかったですが、機能が停止されてるようで。。。私にお返しできることあればいつでもおっしゃってください。本当にありがとうございました‼

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません