- 題名: 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を生成しているとかが原因?
と思っておりますが、どなたかやり方をご存知の方、何卒御教授下さい。