酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C#でWebBrowserを使ってEトレード証券(現SBI証券)に自動ログインさせてみた

会社では不具合情報をWebシステムで管理しています。セキュリティのため毎度毎度ブラウザを立ち上げてユーザーIDとパスワードを入力してログインボタンを押してやる必要があって( ゚Д゚)マンドクセー

なんか操作を楽に出来ないかと思って、MSDNを参考にしながらWebBrowserを使ってみた。下記のはEトレード証券にログインさせてみた例です。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Navigate("https://newtrading.etrade.ne.jp/ETGate");

    // コンテンツの読み込みが完了するまで待たせる 
    while ((webBrowser1.IsBusy)||(webBrowser1.ReadyState != WebBrowserReadyState.Complete))
    {
        Application.DoEvents();
        Thread.Sleep(100);
    }

    // ユーザーIDとパスワードを入力する
    HtmlElementCollection tmp = webBrowser1.Document.All;
    tmp.GetElementsByName("user_id")[0].InnerText       = "id";
    tmp.GetElementsByName("user_password")[0].InnerText = "pass";

    // 情報を送信する 
    HtmlElementCollection form = webBrowser1.Document.Forms;
    form[1].InvokeMember("submit");

C#だと簡単にhtmlが読めるんだなぁ……少し手を入れてやれば不具合情報を抜き出して、加工してっていうのが出来そうですね。