C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?


(過去ログ 61 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■35028 / inTopicNo.1)  Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
  
□投稿者/ 教えてください (7回)-(2009/04/17(Fri) 01:53:45)

分類:[C#] 

(使用言語のバージョン VCSharp2008 EXPRESS)
質問があります。

Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
webBrowser1.Document.Forms[0].InvokeMember("submit");
というのがオーソドックスかと思いますが、
そのページには、submitボタンがふたつあり、目的のボタンを押すことができません。
普通、ボタンにはnameがついていると思いますが、該当するボタンの記述は、
<INPUT class=formBtn1 type=submit value=内容を確認>
のようなもので、指定することができません。
このボタンはEnterに割り当てられておらず、SendKeysでも押すことができません。
解決方法のアドバイスでもいただければと思います。

ご指導お願いします。

引用返信 編集キー/
■35029 / inTopicNo.2)  Re[1]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
□投稿者/ Hongliang (362回)-(2009/04/17(Fri) 03:06:51)
type="submit" がそれぞれ別の form 要素に属しているなら、
> webBrowser1.Document.Forms[0].InvokeMember("submit");
の 0 を 0 なり 1 なりにするだけですね。
引用返信 編集キー/
■35033 / inTopicNo.3)  Re[2]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
□投稿者/ 教えてください (8回)-(2009/04/17(Fri) 10:21:52)
なるほど〜。[0]は配列なので、ふたつあれば[1]にすれば押せるってことですか。
早速調べました。
該当ページは、
<FORM><INPUT type=hidden value=main name=submit></FORM>
<FORM>
<INPUT class=formBt01 type=submit value=入力内容を確認する>
</FORM>
となっていて、別のform要素に属しているようです。
そこで、早速、
webBrowser1.Document.Forms[1].InvokeMember("submit");
として実行しました。
が、うまくいかず…。
今見ると、もうひとつのhiddenのボタンはname=submitで、ふたつめのボタンは、type=submit。
このあたりでなにか実行できない理由があるのでしょうか?

引用返信 編集キー/
■35035 / inTopicNo.4)  Re[3]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
□投稿者/ かたぎり (7回)-(2009/04/17(Fri) 11:25:39)
2009/04/17(Fri) 11:28:03 編集(投稿者)

書いているソースから解釈してみましたが、

ひとつめのFormには、Type=Hidden name=submit は、Submitという名前の隠しフィールド
ふたつめのFormには、Type=Submit 名前がついてない実行ボタン

というところをまず理解する必要がありますです

でもって、

webBrowser1.Document.Forms[1].InvokeMember("submit");

は、
webBrowser1のDocumentのFormsの0から数えて[1]にあたるところの"Submit"って名前のものに対してInvokeって命令を実行

と読めるわけで、そんなのないから、動かないんじゃないかと

あ、実際のInvokeMemberの動作については考えてないので、そこの部分はあいまいです。

引用返信 編集キー/
■35036 / inTopicNo.5)  Re[4]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
□投稿者/ Hongliang (363回)-(2009/04/17(Fri) 12:35:58)
> webBrowser1のDocumentのFormsの0から数えて[1]にあたるところの"Submit"って名前のものに対してInvokeって命令を実行
submit メソッドは、その form 内の type="submit" を実行するという意味です。名前は関係ありません。

で軽く実験しましたが問題なく動作しました。
実は form が 3 つ以上あったりしませんか?
あとはスクリプトが一枚噛んでるとかあるかもしれませんが。
引用返信 編集キー/
■35039 / inTopicNo.6)  Re[5]: Webブラウザで、ボタンを押すにはどうしたらよいでしょう?
□投稿者/ 教えてください (9回)-(2009/04/17(Fri) 13:54:45)
実験お手数おかけします。ありがとうございました。
が、何度検索しても、submitもformもふたつのようです。

最初、わたしもかたぎりさんのおっしゃっているように、
submitという隠しフィールドが問題なのかと思っていたのです。

ただ名前が関係ないとすると…。
ちなみに、
webBrowser1.Document.Forms[0].InvokeMember("submit");
webBrowser1.Document.Forms[1].InvokeMember("submit");
webBrowser1.Document.Forms[2].InvokeMember("submit");
などは試してみましたがだめでした。

実験では問題なく動作するとすると、あとはそのページのスクリプトなんでしょうか…?
。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -