• 締切済み

C#でブラウザ作成、mixi上で自動運転(ボタンクリック)ができません。

勉強のためC#でブラウザ作成を行っています。 (Microsoft Visual Studio C# 2008 Express Edition) まずはmixiのログイン画面で自動ログインするブラウザを作成しています。 URLはここです。 http://mixi.jp/home.pl メールアドレスやパスワードは入力できますが、「ログインボタン」はIDがないため、私の知識ではクリックできません。 記述したコードは、以下になります。 //ログイン用のEメールアドレスを入力 HtmlElement LoginId = this.webBrowser1.Document.GetElementById("email"); LoginId.InnerText = "aaaaaaa@yahoo.co.jp"; //パスワードを入力 HtmlElement LoginPass = this.webBrowser1.Document.GetElementById("password"); LoginPass.InnerText = "password_abc"; //チェックボックス(次回から自動でログイン)をチェック HtmlElement CheckBox = this.webBrowser1.Document.GetElementById("sticky"); LoginButton.InvokeMember("click"); //ここに「ログイン」ボタン押下処理を追加予定 解決方法,参考になるサイト,その他ご意見等、ご助言をお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.1

GetElementsByTagNameを使うんでしょうね。 って、DOMにどんな機能があるか調べないで開発してるんですか? まずは勉強しましょう。

akiko538
質問者

お礼

notnotさん、ご回答ありがとうございます。 おっしゃるとおり、勉強不足です。 まったく検討のつかないまま開発しようと思ってました。 まずはDOMについて調べてみようと思います。

関連するQ&A

  • WebBrowser 内のボタンをクリックし、引数を渡したい。

    WebBrowser 内のボタンをクリックし、引数を渡したい。 WebBrowser コントロールを使用していて Windows アプリからページ内のボタンをクリックする方法について質問です。 以下のボタンが html で定義されているとして、 <input type = "button" id = "button1" onclick="javascript:foo();" /> HtmlElement element = null; element = webBrowser1.Document.GetElementById("button1"); element.InvokeMember("click"); こうすると、javascript の foo() が実行されます。 本題はここからなんですが、 この関数fooに引数を渡したいのです! 例えばfooの定義を var foo=function(arg) { alert(arg); } として、アプリ側から、 element.InvokeMember("click","this is test"); のようにすれば動くかと思ったのですが、だめでした。 方法をご存知のかた、ご教授願います!

    • ベストアンサー
    • HTML
  • mixiを自動でログインできるマクロを作成したいと思っています。

    mixiを自動でログインできるマクロを作成したいと思っています。 サイトなどを見ながらマクロを作成しましたがうまくログインできませんでしたので 質問させていただきます。 [マクロ文] 1 URL = "http://mixi.jp/home.pl" 2 Set objIE = CreateObject("InternetExplorer.application") 3 objIE.Visible = True 4 objIE.Navigate URL 5 objIE.document.forms(0).Item("email").Value = "メールアドレス" 6 objIE.document.forms(0).Item("password").Value = "パスワード" 7 objIE.document.forms(0).Submit [エラー] 5行目の所でエラーが出ます。メールアドレスを入力するフォームにうまく アドレスが出力されないことが原因だと考えられます。 サイトを開くところまでは出来たのですがその先にいけません。 どなたか分かる方いらっしゃいましたら教えていただけると助かります。 よろしくお願いします。

  • VB2005、WebBrowserにてログインが成功したか失敗したかを判断

    お世話になっております。 VB2005ユーザーです。 WebBrowserを使用し、windowsフォームに入力した内容を元にログインし、ログインが成功したか失敗したかを判断したいのです。 With WebBrowser1 .Navigate("ログインしたいURL") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete '読み込み終わるまで待つ System.Windows.Forms.Application.DoEvents() Loop .Document.All.GetElementsByName("ID")(0).InnerText = ID.Text .Document.All.GetElementsByName("パスワード")(0).InnerText = パスワード.Text .Document.Forms(0).InvokeMember("submit") という物を使い、その後にログイン成功か失敗かを判断するために、 If .Document.Body.Innertext = "ログイン失敗" Then MsgBox("だめ") Exit Sub Else MsgBox("OK") Exit Sub End If というコードを使ってみたのですが、Innertextの情報を読み取っていないのか、Else MsgBox("OK")に飛んでしまいます。 Navigateにて進んだ先のHTML情報(Innertext)と、コチラが指定したい情報が一致しているかの判断はどのようなコードを記述すればいいのでしょうか?

  • C# からIE操作について

    このコードは出来ましたが、 HtmlElementCollection forms1 = all.GetElementsByName("password"); forms1[0].InnerText = "TEST"; // テキストボックスに「C#」を入力 こちらが今してるのは、IEにチェックボックスにチェックしたいけど、どうしたら出来ますか? IEソース <input name="saveFlg" type="checkbox" id="saveFlg"/> C# HtmlElement usernameTextbox = webBrowser1.Document.GetElementById("saveFlg"); usernameTextbox.SetAttribute("saveFlg", "1"); これをしてもチェックしてくれませんでした どうしたらいいですか? どなたか教えて頂けませんか?

  • VB2005のWebbrowserでSubmit

    VB初心者です。 Webbrowserで、Submitを押して自動ログインしたいと思います。 ネットで色々調べてみると、 WebBrowser1.Document.All.GetElementsByName(TextBox2.Text)(0).InnerText = TextBox4.Text WebBrowser1.Document.All.GetElementsByName(TextBox3.Text)(0).InnerText = TextBox5.Text WebBrowser1.Document.Forms(0).InvokeMember("submit") で、実行可能というのがありました。 IDとパスワードの入力はできたのですが。(フォーム上で、TextBoxで入力しての話)Submitが実行されません。 ローカルウィンドーで見ても、よく判らないのですが、何をどのように調べれば、実行可能であるか?どうか?判るのでしょうか? どなたか?詳しい方宜しくお願いします。

  • リンク名が複数同じ名前あるとき

    リンク名をクリックさせたいのですが、うまくいかないので教えてください。 環境 OS XP VB2005 For Each anchor As HtmlElement In WebBrowser1.Document.Links If anchor.InnerText = "あああ" Then anchor.InvokeMember("click") Exit For End If Next 「あああ」がひとつしかない場合はクリックできるのですが、「あああ」が複数ある場合にうまくいきません。 2つ目の「あああ」クリックさせる方法があれば教えてください。 宜しくお願いいたします。

  • WebBrowserでgoogle検索するには?

    WebBrowserを使ってgoogle検索をVBで作ったブラウザ上で行いたいです。 具体的には、 「ComboBoxで選択した値」と「TextBoxで書き込んだキーワード」を &検索したいのですが Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted WebBrowser1.Document.All.GetElementsByName("q")(0).InnerText = TextBox1.Text WebBrowser1.Document.All.GetElementsByName("q")(0).InnerText = ComboBox1.SelectedItem WebBrowser1.Document.Forms(0).InvokeMember("submit") End Sub では、&検索ができません。常にコンボボックスで選択されたものだけが 検索され、しかも無限に検索をします。 対処法を教えていただけないでしょうか?

  • ブラウザを変えるとミクシィにログインできません。

    ミクシィのログインのことで質問させて頂きます。 私は、ブラウザを「Sleipnir」と「Fire Fox」の両方を使用している のですが、「Sleipnir」ですとミクシィにログインできるのですが、 「Fire Fox」を開きIDやPASSを入力してミクシィにログイン しようとするとできません。 現象としては、情報を打ち込んだ後「ログインボタン」を押しても 画面が進まない?ような感じです。 打ち込んだID・PASSは入力された状態なのですが、「入力された 情報が間違っています」のようなことは出ずに、その入力画面から 進まないような形です。 Sleipnirのほうで一度ミクシィを開きログアウト後、FireFoxで正しい 情報を入力してもログインできません。 今後、ブラウザをFireFox一本に絞って行きたいと考えているの ですが、上記現象が発生しており困っております。 私の少ない脳みそでは原因がわからなかったため、この場を借りて ご質問させて頂きました。 もし、何かお分かりの方がいらっしゃいましたら、お手数ですが 教えて頂けたら幸いです。宜しくお願い致します。 FireFoxのほうで、何か特別なプラグイン?のようなものをダウンロードすることが必要なのでしょうか…?

  • WebBrowserでHTML要素のclick処理

    WebBrowserで画面の自動遷移制御をしたいですが、うまくいかないです。 なぜかHTML要素のbuttonにInvokeMember("click")を呼び出す後の画面更新待ちができないようです。 ソースコードをご覧ください。 WebBrowser wb = new WebBrowser(); wb.Navigate("http://www.google.co.jp"); Application.DoEvents(); while (wb.ReadyState != WebBrowserReadyState.Complete || wb.IsBusy) { Console.WriteLine("waiting..."); System.Threading.Thread.Sleep(10); Application.DoEvents(); } Console.WriteLine(wb.DocumentTitle);   <----ここでGoogleが出力される //キーワードより検索する HtmlElement input = wb.Document.All.GetElementsByName("q")[0]; HtmlElement button = wb.Document.All.GetElementsByName("btnG")[0]; input.InnerText = "test"; button.InvokeMember("click"); Application.DoEvents(); while (wb.ReadyState != WebBrowserReadyState.Complete || wb.IsBusy) { Console.WriteLine("waiting..."); System.Threading.Thread.Sleep(10); Application.DoEvents(); } Console.WriteLine(wb.DocumentTitle); <----ここでもGoogleが出力される 2回目のタイトルは「test - Google 検索」がでるはずですが、 なぜか前のページのままです。 Documentの中身も前のページのままです。 解決方法お願いします。

  • webbrowserについてボタンが見つからない

    現在 https://secure.avaonline.jp/member/ の自動ログインツールを作っているのですが、 WebBrowser1.Document.All.GetElementsByName("accountid")(0).InnerText = TextBox1.Text WebBrowser1.Document.All.GetElementsByName("passwd")(0).InnerText = TextBox2.Text によって、IDとPWの入力はできたのですが、ログインボタンと、ゲームスタートの ボタンどうしても見つかりません。 WebBrowser1.Document.All.GetElementsByName("ボタン名")(0).InvokeMember("submit") となど試してはみたのですが、 0' の値は 'index' に対して有効ではありません。'index' は 0 と -1 の間でなければなりません。 パラメータ名: index とエラーが出てしまいます。 上記のサイトはjavascriptなど使っていて見つけられなかったので、 具体的なボタンの名前やどのように記述していいの教えてください。 よろしくお願いします