【会員アンケートご協力のお願い】抽選で計5名様に役立つ書籍をプレゼント!

Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11全般 : Microsoft 365)
WebBrowserコントロールの件
投稿日時: 24/09/04 19:29:30
投稿者: コンギョ

いつもお世話になっております。
 
WebBrowserコントロールでわからない部分があるので助けてほしいです。
やりたいことは、webページの中にあるコントロールのNameが「GO」でID「GO」のボタンがあって、クリックできる状態だったら、クリックするです。
 
Dim htmlDoc As HTMLDocument
Dim tr As Object
 
Me!WebBrowser.Object.Navigate http://*******
Set htmlDoc = Me!WebBrowser.Object.Document
 
次にwebページ内のNameが「GO」でID「GO」のボタンを探したいです。
 
 
よろしくお願いします。

投稿日時: 24/09/04 21:20:21
投稿者: コンギョ

コンギョ さんの引用:
いつもお世話になっております。
 
WebBrowserコントロールでわからない部分があるので助けてほしいです。
やりたいことは、webページの中にあるコントロールのNameが「GO」でID「GO」のボタンがあって、クリックできる状態だったら、クリックするです。
 
Dim htmlDoc As HTMLDocument
Dim tr As Object
 
Me!WebBrowser.Object.Navigate http://*******
Set htmlDoc = Me!WebBrowser.Object.Document
 
次にwebページ内のNameが「GO」でID「GO」のボタンを探したいです。
 
 
よろしくお願いします。

対象のwebページは下記のようなソースコードになっています。
 
<tr><td valign="top">
      <input type="button"
            name="GO"
            id="GO"
            value="スタート"
            onClick="javascript:ZZZ(true)"
                                                                                     
            class="originalButton1">
</td></tr>
 
どこかのフレームの中など探してみましたが、見つかりませんでした。
Set htmlDoc = Me!WebBrowser.Object.Document
Set frameDoc = htmlDoc.frames(0).Document
For Each tr In frameDoc.getElementsByTagName("table")(1).getElementsByTagName("tr")
      Debug.Print tr.outerHTML
Next tr
 
よろしくお願いします。

回答
投稿日時: 24/09/05 10:20:10
投稿者: Suzu

スクレイピングをする上で、そのサイトが、スクレイピングを許しているかきちんと確認してくださいね。
 
 
VBEから探すのではなく
ブラウザの開発者ツール(F12) から探してはどうですか?

投稿日時: 24/09/05 11:31:08
投稿者: コンギョ

Suzu さんの引用:
スクレイピングをする上で、そのサイトが、スクレイピングを許しているかきちんと確認してくださいね。
 
 
VBEから探すのではなく
ブラウザの開発者ツール(F12) から探してはどうですか?

Suzu様
 
ご回答ありがとうございます。
対象のサイトは確認済みで問題ありません。
F12で改めて確認したところ、探したいボタンは2つ目のフレーム内の「IFRAME」のテーブルの中にあることがわかりました。
なので質問を整理すると「iframe」内のテーブルを検索して、ボタンを見つけたいです。
 
Me!WebBrowser.Object.Navigate http://*******
Set htmlDoc = Me!WebBrowser.Object.Document
Set frameDOC = htmlDoc.frame(1).Document ← 2つ目のフレームをセット
For Each tr In frameDoc.getElementsByTagName("table")(0).getElementsByTagName("tr")
・・・
 
とやると「iframe」内のテーブルは出てきませんでした。
 
 
どうぞよろしくお願いします。

投稿日時: 24/09/20 21:56:28
投稿者: コンギョ

お世話になります。
 
「iframe」の件ですが、「iframe」内のURLを再定義することで、解決しました。
 
報告が遅れましたが、どうもお騒がせしました。