酢ろぐ!

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

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が読めるんだなぁ……

少し手を入れてやれば不具合情報を抜き出して、加工してメールで共有するということができそうですね。