度々ご面倒お掛け、申し訳ありません。
環境ですが、VB6(sp6) Win XP PRO IE6 です。
JRA HP から競走馬登録/抹消一覧を開きデータをコピー保存するものです。
(URL http://jra.jp/sitemap/index.html)
最終的に該当ページを開くことが出来ません。コードは以下のとおりです。
Set objElement = objIE.Document.getElementsByTagName("INPUT")
For Each objTarget In objElement
If LCase(objTarget.Type) = "submit" Then
objTarget.Click
Exit For
End If
Next
HTMLソースは
<TR>
<TD>
<FORM TARGET="_top" ACTION="/JRADB/accessV.html" METHOD="POST">
<INPUT TYPE="HIDDEN" name="CNAME" value="px15udjH1301026743929/06">
<INPUT TYPE="SUBMIT" VALUE="2006年10月26日登録"></TD><TD>
</FORM>
2006年10月26日登録分</TD><TD>(89頭)</TD>
</TR>
1行目の"HIDDEN"は確認できるのですが2行目の"SUBMIT"が検索できません。INPUT行をLENGTHにて確認しましたが"1"で検索できないことが分りました。
"HIDDEN"が関係しているのか?、いやコードが間違っているのでと思います。
よろしくご教授方お願いいたします。
そのページのソースコードを見たのですが
iframeになっています。
よってフレームにアクセスしてやらないとダメです。
テストしたコード
Dim iDoc As HTMLDocument
Dim Frame As HTMLDocument
Dim Element
Set iDoc = WebBrowser1.document
Set Frame = iDoc.frames(0).document
For Each Element In Frame.All.tags("INPUT")
Debug.Print Element.Value
Debug.Print Element.Type
If Element.Type = "submit" And InStr(1, Element.Value, "登録") > 0 Then
Element.Click
Exit For
End If
Next
Set iDoc = Nothing
Set Frame = Nothing
ヤマ@文系様
ご多忙中、色々お世話になっております。
お蔭様で当該ページを開くことが出来ました。感謝、感謝です。
iframeとは気づきませんでした。iframeとは何かこれから勉強します。
魔界の仮面弁士様にももっと努力するよすご指導頂いております。
本当に私にとって難題も皆様方のご指導ご協力により前に進む事が出来ております。感謝に耐えません。今後も何卒よろしくお願いいたします。(V_@)
ツイート | ![]() |