質問者
自動トレードWebアプリケーソンのボタンを押すプログラム

質問
-
ここで質問すべきか分かりませんが。
C# Express Editionを用いてあるNet証券のトレード自動化プログラムを書いています。
WebRequest.Create(url)のurlに、ソースhtmlを解析して得たURLとパラメータを入力しています。その結果検索したトレード履歴などのhtmlの取得までは成功しています。
問題は、自動注文です。
注文画面には注文データ入力と注文を確定するボタンがあって、ボタンを押すと注文確定(確認を省略した場合)するのですが、この操作のプログラミング方法が分かりません。
注文データの入力は、ソースhtmlから該当するnameとvalueを調べ、それをurlのパラメータに追加すれば良いはずですが、注文ボタンを押す操作が分かりません
注文画面のソースhtmlの注文確定ボタン部分は下記となっています。
<span id="confirmButtonBlock" class="button_area_section" style="display: block">
<input type="image" name="" src="https://・・・・/images/orderpanel_3/confirm.gif" tabindex="14" id="confirmButton">
</span>
<span id="orderButtonBlock" class="button_area_section">
<input type="image" name="" src="https://・・・・/images/orderpanel_3/order.gif" tabindex="15" id="orderButton">
</span>
素朴な疑問は、ボタンを表示するgifが指定されているだけで、操作に関する部分がないことです。
ソースの他の部分にあるかと思い調べていますが見つかりません。
何かヒントがありましたらご教授をお願いします。
すべての返信
-
input type="image"は送信ボタンを兼ねています。
(参考)
画像で送信ボタンを作る
http://www.tagindex.com/html_tag/form/input_image.html
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
input type="image"は送信ボタンを兼ねています。
(参考)
画像で送信ボタンを作る
http://www.tagindex.com/html_tag/form/input_image.html
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
trapemiya 様
そうなんですか。
早速試してみます。
とりあえずありがとうございました。 -
質問がよく理解できてないのでハズレかもしれませんが・・・
> 注文画面には注文データ入力と注文を確定するボタンがあって、ボタンを押すと注文確定(確認を省略した
> 場合)するのですが、この操作のプログラミング方法が分かりません。WebBrowser クラスを使うのはどうなんでしょうか? ボタンクリックなら以下のような感じで可能ですが
HtmlDocument document = webBrowser1.Document;
HtmlElement element = document.GetElementById("confirmButton");
element.InvokeMember("click"); -
WebBrowser クラスを使うのはどうなんでしょうか? ボタンクリックなら以下のような感じで可能ですが
HtmlDocument document = webBrowser1.Document;
HtmlElement element = document.GetElementById("confirmButton");
element.InvokeMember("click");
SurferOnWwwさん ご指摘ありがとうございます。
WebBrowser については、知らなかったので調べてみたのですが、とてもすぐには分かりません。
リモートのWebPageをクライアント側で処理するアプリを作れるということでしょうか。
予想していたことですが、WebPageやhtml文書を処理する手法(クラスなど)は存在すると思っていましたが、現実は、htmlを取得、それから特定部分を切り出すメソッドを手作りしています。
どこかでWebBrowser などの使用に移行しないといけませんがが、今作っているアプリについてはすぐには難しいと思っています。
質問の意味は、サーバーにログインし、ある入力画面で、データ入力とその実行(ボタンクリック)をする方法ですが、element.InvokeMember("click");はこの目的にに合っているでしょうか。elementとして目的のボタンを設定すればクリック処理ができるということでしょうか。そうだとすれば簡単のようにも思えます。
知識不足のため今後更に勉強していきたいと思っています。 -
input type="image"は送信ボタンを兼ねています。
(参考)
画像で送信ボタンを作る
http://www.tagindex.com/html_tag/form/input_image.html
trapemiyaさん、検討してみましたが、まだ成功していません。
>input type="image"は送信ボタンを兼ねています。
この意味は分かりました。
送信ボタンをクリックした場合に、actionによってアクセスするurl(プログラム)が指定してある場合がありますが、今回は質問のコードの範囲では見つかりません。
入力画面のurlに、入力すべきデータを、name=value&でつないで上手くいっている場合がありますが、今回の質問の場合は上手くいきません、
WebPageのソースを詳しく書くのは憚られるので、気がつかれたことがありましたらお願いします。 -
-
-
送信ボタンをクリックした場合に、actionによってアクセスするurl(プログラム)が指定してある場合がありますが、今回は質問のコードの範囲では見つかりません。
入力画面のurlに、入力すべきデータを、name=value&でつないで上手くいっている場合がありますが、今回の質問の場合は上手くいきません、
Fiddlerなどを利用して、Webサーバーとどのようなやり取りがされているかを見るとヒントが得られるかもしれません。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
やはりそうなんでしょうか。
指摘していただいた方法では現在まだ成功しておりませんが、どこかに見落としがある可能性が高いので、再度検討してみます。
ありがとうございました。
サーバサイドでは、クッキー認証することが多いので、以下urlなどが参考になれば・・。
http://www.atmarkit.co.jp/fdotnet/dotnettips/326cookie/cookie.html
あと思いつくのは、セッションIDくらいですかね。。
MCITP(Database Developer/Database Administrator) MCTS(SQL Server 2005/Web Applications) -
MVP様
Fiddlerなどを利用して、Webサーバーとどのようなやり取りがされているかを見るとヒントが得られるかもしれません。
ノブヒデ様
サーバサイドでは、クッキー認証することが多いので、以下urlなどが参考になれば・・。
http://www.atmarkit.co.jp/fdotnet/dotnettips/326cookie/cookie.html
あと思いつくのは、セッションIDくらいですかね。。
残念ながら解決していませんが、一応これで区切りをつけたいと思います。
皆さんのご指摘およびつまらないミスの存在など、冷静になってもう一度考えます。
色々ありがとうございました。