- 題名: Webbrowserの自動化 jspのページ
- 日時: 2006/12/07 18:05:12
- ID: 18472
- この記事の返信元:
- (なし)
- この記事への返信:
- [18474] Re[1]: Webbrowserの自動化 jspのページ2006/12/07 21:27:42
- ツリーを表示
御回答有難う御座います。 > jsp かどうかはあんまり重要じゃないですね。 こちらは安心致しました。> 取りあえず、WebBrowser.DocumentText などを使って、取得した html を眺めてみたらどうでしょうか。 > まるまる frame なページになっていたとかかも知れませんよ? うっ。げほっげほっ。 ご指摘のとおり、frameset とframeタグが入った数行しか読み込まれて おりませんでした。 読み込まれたHTMLは下記の通りです。Frameの中身を読み込むには どうしたら良いでしょうか・・・。適当なページが検索でヒットしません。 <HTML> <HEAD> <TITLE>X|[c{</TITLE> <META HTTP-EQUIV="Pragma" CONTENT="no_cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no_cache"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS"> <SCRIPT TYPE="text/javascript" SRC="j.js"> </SCRIPT> <SCRIPT TYPE="text/javascript"> var mi; tid=10; timer1=120000; timer2=15000; timer=900000; function ct(){ var flg = "81"; if (flg == "71"){ st(); to(); ex_nd(); et='0'; }else if (flg == "81"){ st(); ti(); } } function st(){ clearTimeout(tid); clearTimeout(tid); clearTimeout(tid); } function ex_db(){ if (document.all) { obj = BD.document.all('ex'); } else if(document.getElementById) { obj = BD.document.getElementById('ex'); } if (obj != null && obj.style.display == "none") { BD.db('ex'); if (BD.location.href.indexOf("a.jsp") != -1) { BD.ex.focus(); } } } function ex_nd(){ if (document.all) { obj = BD.document.all('ex'); } else if(document.getElementById) { obj = BD.document.getElementById('ex'); } if (obj != null && obj.style.display == "block") { BD.nd('ex'); } } function ti(){ tid = setTimeout('close()',timer); } function close(){ if(mi != null){ BD.location.href = 'm.jsp?id=' + mi + ''; }else{ BD.location.href = 'm.jsp'; } } var bk='0'; var et = "0"; /* MCOPYImF */ var tf = "0"; /* ?pFLG */ var agent_flg = true; function check_user(){ if (!user()) { agent_flg = false; BD.location.href = 'error.jsp'; } } function unload(){ if (agent_flg) { close(); } } </SCRIPT> <SCRIPT FOR="window" EVENT="onunload" LANGUAGE="javascript"> if (agent_flg) { close(); } </SCRIPT> </HEAD> <frameset frameborder="no" border="0" framespacing="0" onLoad="check_user();scroll()" onUnload="unload()"> <frame src="m.jsp?pdate=20061207034313" name="BD" frameborder="0" marginwidth="0" marginheight="0"> </frameset> </HTML>
再度御教授有難う御座います。 結果として下記のメソッドを使用して無事動作させる事が出来ました。 コレで大抵の事はできそうです。 > HtmlWindow また、参考としたURLは下記の通りです。 http://q.hatena.ne.jp/1146683800 http://dobon.net/vb/bbs/log3-25/15353.html また、次の方の為に参考ソースを記入します。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.WebBrowser1.Navigate("https://aaa.aaa/index.jsp") End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) _ Handles WebBrowser1.DocumentCompleted Dim Frames As HtmlWindow Dim Elements As HtmlElement For Each Frames In Me.WebBrowser1.Document.Window.Frames For Each Elements In Frames.Document.GetElementsByTagName("INPUT") If Elements.GetAttribute("TYPE") = "button" Then If Elements.GetAttribute("VALUE") = "Test" Then Elements.InvokeMember("CLICK") End If End If Next Next End Sub
分類:[.NET]
【解決したい問題】
HtmlElement等を使用してWebbrowserの自動化を行っています。
今回、https://xxx.xxx/index.jspで終わるページで試したところ
作成したソースが全て素通りしてしまい困っています。
行おうとしたことは、ページを表示してボタンをクリックする事です。
【解決するために何をしたか】
過去ログ http://dobon.net/vb/bbs/log3-25/15353.html 等に
あるとおり、INPUT→TYPE→Value→Buttonという条件分岐で
Yahoo等、他のページでは問題なく動作していました。
しかし、上記のページだけInputのCountが0となりソースが
素通りしてしまいます。使ったソースは上記のURLの通りです。
jspですので、javaが動的にHTMLを生成しているとかが原因?
と思っておりますが、どなたかやり方をご存知の方、何卒御教授下さい。