>yahooブログサイトのTOPページなんですが、
>http://blogs.yahoo.co.jp/
>中央に、”ブログを探そう!”ってグレーアウトっぽい文字がいます。
>ここに、キーワードを入れて、”検索”をクリックしたい(自動でやりたい)と思ってるのですが、
>うまく、キーワードを入れられない。
と質問が来ました。
途中まで作成した、ソースがあると便利なんだけど
(XXXXしたけど できなかった、だと、修正が楽)
頭から、探ってみます。
まず、 http://blogs.yahoo.co.jp/ の 該当箇所のソースを開くと、
<form target="_top" id="navigationSearchForm" name="#" method="get" action="http://search.blogs.yahoo.co.jp/SEARCH/index.html"> <input type="text" style="color: rgb(153, 153, 153);" name="p" class="inputText" id="navigationSearchInput" size="27" title="ブログを探そう!"/> <select style="" name="pt" class="form_select"> <option value="c">記事</option> <option value="b">ブログ</option> <option value="i">画像</option> </select><input type="submit" value="検索"/> </form>
となっているので、
入力フォーム(id="navigationSearchForm")に対して、データを検索窓(name="p")にセット後
送信(.Submit)してみました。
'検索項目(name=q)にセットする。
objIE.Document.Forms("navigationSearchForm").Item("p").Value = "XXXXXXXXXXXXXX"
'フォームを送信
objIE.Document.Forms("navigationSearchForm").Submit '送信処理
下記、テストで使ったソースです。
イロイロといじって、テストしてみてください。
Sub ie_test() 'IEテストする。 'IEの起動 Dim objIE As Object '変数を定義します。 Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。 objIE.Visible = True '可視、Trueで見えるようにします。 '処理したいページを表示します。 objIE.Navigate "http://blogs.yahoo.co.jp/" 'ページの表示完了を待ちます。 While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。 DoEvents '重いので嫌いな人居るけど。 Wend '検索項目(name=q)にセットする。 'objIE.Document.getElementsByName("p")(2).Value = "三流" 'objIE.Document.getElementsByName("navigationSearchInput")(0).Value = "AKB48" objIE.Document.Forms("navigationSearchForm").Item("p").Value = "AKB48" 'フォームを送信 objIE.Document.Forms("navigationSearchForm").Submit '送信処理 End Sub
詳細解説、試行錯誤、実はハマっていた真実の動画
ア.nameのn番目を探して逃げた
.getElementsByName("p")(2).Value = "三流"
と(2)と指定したり、
イ.nameは複数あるので、単一のidで指定したり
.getElementsByName("navigationSearchInput")(0).Value = "AKB48"
↑nameの代わりにidを使ってみた。※関数はgetElementsByNameだけど
ウ.フォームを指定した
'検索項目(name=q)にセットする。
objIE.Document.Forms("navigationSearchForm").Item("p").Value = "XXXXXXXXXXXXXX"
↑最後は素直に フォーム(xxxx).項目名(XXXX).値 = 値 にした。
カッコつけていたけど、実は、いつものようにハマっていたり・・・
(※最近、動画編集が面倒になってきたので、ノーカットでアップした手抜きですが)
↓を見て、笑ってください。
デバック、試行錯誤の動画 http://www.youtube.com/watch?v=_IPI8GWyKzk を見てください
www.youtube.com