VB.NET2008でHTMLのボタンをクリックする方法について

このQ&Aのポイント
  • VB.NET2008を使用して、WebBrowserコントロールを利用してHTMLのボタンをクリックする方法を知りたいです。
  • 具体的には、Button1をクリックすると、WebBrowserコントロールに表示されているWEBページのボタンを自動的にクリックしたいです。
  • どのようにすればこの機能を実現することができるでしょうか?
回答を見る
  • ベストアンサー

VB.NET2008を使用しています。

VB.NET2008を使用しています。 ----- HTML ----- <input type="submit" name="Enter" value="ボタン"> ----- END ------ ----- 構成@VB ----- Form1 Button1 <- これをクリックしてWebBrowserのボタンを押したことにする WebBrowser1 ----- END ----- 上のようなボタン(HTMLのもの)を VB.NETのButton1を押すとWebBrowser1に表示されているWEBページのボタンを 押したようにしたいのですがどのようにすれば実現できますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

間違いました。 →htmElm.DomElement.FireEvent("onclick") これはJavascriptでクリックイベントを設定してある場合でした。 >type="submit" でしたね。。。 →htmElm.DomElement.click() こっちです。

devman
質問者

お礼

ありがとうござます。 しかしDomElementにClickイベントがなかったのでがんばって試行錯誤したけっか Dim Elements As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName("input") For Each Element As HtmlElement In Elements If Element.GetAttribute("type") = "submit" Then Element.InvokeMember("click") End If Next によって解決することができました。 ありがとうございます。

その他の回答 (1)

回答No.1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load   Me.WebBrowser1.Navigate("c:\test.htm") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   'ドキュメント   Dim htmDoc As HtmlDocument = Me.WebBrowser1.Document   'ドキュメント内の「input」タグ達を取得   Dim htmElms As HtmlElementCollection = htmDoc.GetElementsByTagName("input")   'サンプルのHTMLは一個しかないようなので、とりあえず先頭を取得   Dim htmElm As HtmlElement = htmElms.Item(0)   'DOMを利用。mshtmlのサンプルはあちこちで落ちているはず   'あとはクリックイベントを呼ぶだけ   'スクロールでもマウスダウンでも何でも呼べる   htmElm.DomElement.FireEvent("onclick") End Sub

関連するQ&A

  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML
  • vb2005のWebbrowserコントロールで複数のSubmitボタンがある場合

    Webbrowserコントロールに読み込んだwebページ上に 複数のSUBMITボタンがある場合、name属性で押すボタンを選択し 実行する方法を教えてください。 -------------------------------------------------------------- 【htmlのソース】 <INPUT type=submit value=アップロード name=select> <INPUT type=submit value=次へ > -------------------------------------------------------------- 同一フォーム上に二つのボタンがある。 【vb2005のソース】 -------------------------------------------------------------- WebBrowser1.Document.Forms(0).InvokeMember("submit") -------------------------------------------------------------- を実行すると、 「<INPUT type=submit value=次へ >」のボタンの方は実行できるのですが、 「<INPUT type=submit value=画像のアップロード name=select>」の方は実行されません。 よく分からないなりに、 -------------------------------------------------------------- WebBrowser1.Document.All.GetElementsByName("select")(0).InvokeMember("submit") -------------------------------------------------------------- 等と書いてみましたが、反応ナシです。 ご教授、お願いいたします。

  • submitボタン上の文字とvalue=の数字

    CSS3 + HTML5 でゲームを作っています。 Formのsubmitボタンを設置する必要があるのですが、ボタン上に表示する文字とvalue=の文字を分ける必要があります。 <input type="submit" name="point" value="送信する"> 上記では本来であれば数値を入れたいvalue=に、「ボタン上に表示する文字」を入れなければならないため使えません。 <button type="submit" name="point" value="10050">購入する</button> であれば、valueに数値を置き、ボタン上に文字を置けるため当方のニーズに叶うのですが、HTML5上で見るとボタンの大きさが<input type="submit>の3分の1くらいになってしまいます。 従い<button type="submit" name="point" value="10050">購入する</button> のボタンの大きさを変更する方法がわかればいいと思いますが、この方法でなくても構いません。 HTML5上で、当方のニーズに合うボタンを作るためにはどうしたらいいでしょうか?

    • ベストアンサー
    • HTML
  • javascriptでinput属性の入力

    複数のボタンがあります。 それぞれのボタンによって、value値を変えたいと考えています。 通常であれば <button class='button' type='submit' name='volume' value='350'>350購入</button> <button class='button' type='submit' name='volume' value='450'>450購入</button> という形を利用しますが、理由があり、 type='submit' を使用できません。 そこで、 <input id="button350" type="button" value="350購入" /> <input id="button450" type="button" value="450購入" /> というsubmit属性の無いボタンを使用しながら、「javascriptを使いname value を抽出しsubmitまで持っていく」ことを考えています。 そこで、下記のようなものを2種類(350と450は別の記載方法でテスト)作ってみましたが、いずれもsubmitは出来ますが、value値を渡すことが出来ません。 どのように書けば、name属性にvalue値を渡すことが可能でしょうか? <form action="abc.php" method="post" name="form2" id="form2"> <script> $(function(){ $('#button350').click(function() { $('input[type=\'submit\']'); $('input[name=\'volume\']'); $('input[value=\'350\']'); $('#form2').submit(); }); $('#button450').click(function() { $('input[type=\'submit\'],[name=\'d4_buy_stock_volume2\'],[value=\'450\']'); $('#form2').submit(); }); }); </script> <BR> <BR> <input id="button350" type="button" value="350購入" /> <BR> <input id="button450" type="button" value="450購入" /> </form>

  • 複数ボタンを制御出来る2度押し防止ボタン

    HTML5+CSS3でゲームを作っています。 フォームがあり、ボタンが複数並んでいます。 <SCRIPT TYPE="text/javascript"> <!-- function sendform(){ submitForm(); } function submitForm(){ document.form1.submit(); } // --> </SCRIPT> <FORM action="buy.cgi" method="post" name="form1" id="form1"> <button class="button8" type="submit" name="d4_buy" value="300 onclick="sendform()">300購入</button> <button class="button8" type="submit" name="d4_buy" value="400" onClick="sendform()">400購入</button> </FORM> 上記で正常に作動しますが、3G環境など通信状態の悪い時に、「300購入ボタンを押した直後に400購入ボタンを押す」と700購入が出来てしまいます。 【希望事項】 2つのボタンを連続して押しても2つ目が無効になるようにしたいというのが希望です。 ネットで調べたところ ****************************************** http://okwave.jp/qa/q627484.html ****************************************** <HTML><BODY> <FORM method="get" action="http://www.google.com/search"> <INPUT type="submit" value="submit1" onclick="this.form.q.value=this.value;this.disabled=true;this.form.submit()"> <INPUT type="submit" value="submit2" onclick="this.form.q.value=this.value;this.disabled=true;this.form.submit()"> <INPUT type="hidden" name="q" value="" > </FORM></BODY></HTML> ****************************************** という例があったため、この例に従って <SCRIPT TYPE="text/javascript"> <!-- function sendform(){ submitForm(); } function submitForm(){ document.form1.submit(); } // --> </SCRIPT> <FORM action="buy.cgi" method="post" name="form1" id="form1"> <button class="button8" type="submit" value="300 onclick="this.form.q.value=this.value;this.disabled=true;this.form.sendform()">300購入</button> <button class="button8" type="submit" value="400" onclick="this.form.q.value=this.value;this.disabled=true;this.form.sendform()">400購入</button> <INPUT type="hidden" name="d4_buy" value="" > </FORM> としてみたのですが、うまく数値の引き渡しが出来ません。(NULL となります) どのように改造すればいいか教えてください。 よろしくお願いいたします。

  • IEでのフォームメールで、ENTERキーでのsubmitを動かさないようにしたいのですが。。

    IEでフォームメールを使用したときにENTERキーを押下するとsubmitが動いてしまうのですが、その動きを止める為に 1.送信ボタンは   <input type="button" name="submit" value=" 送信する " onClick="subm()"> で関数subm()で function subm() { document.form1.submit(); } という動きと 2.送信ボタンに<input type="button" name="submit" value=" 送信する " onClick="javascript:document.form1.submit()"> という動きの2つを試してみたのですが、どちらもエラーになってしまいました。 原因がわからないので調べているところですが、もしどなたか他の方法をご存知でしたら、教えていただけませんでしょうか?

  • WebBrowser内で、ブログにログインするには

    WebBrowserで、ブログのログイン画面を表示させ 自動でログインさせたいと思います。 URL → https://www.so-net.ne.jp/blog/login_sso?u=http%3A%2F%2Fblog.so-net.ne.jp%2F 分からないのは、「タブ」と「ログインボタン」のクリックです。 タブのクリックの仕方は、全く分かりませんでした。 ログインボタンを調べると <input id="loginformsubmit" type="submit" value="ログイン" name=""> となっており、 これを使って、vb.netでコーディングするには「name」が分からないと書けません。 With Me.WebBrowser1.Document.All Dim submit1 As HtmlElementCollection = .GetElementsByName("") submit1(0).InvokeMember("click") End With どのようにしたら、実現できるか 教えて下さい。 宜しくお願いします。

  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • vb2005のログイン処理 -yahooメール-

    お世話になります。 yahooメールのログイン処理プログラムをvb2005で書こうと思っています。 WebBrowser1.Document.Forms("login_form").DomElement("login").value = "あなたのログインネーム" WebBrowser1.Document.Forms("login_form").DomElement("passwd").value = "あなたのパスワード" でこの後、submitの部分を書きたいのですが どうも従来のvbとは異なるみたいでどのように コーディングしてよいのか分かりません。 教えてください。 お願いします。

  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

専門家に質問してみよう