IEの操作について その2?

解決


Reach  2006-10-15 06:29:37  No: 96924

度々ご面倒、申し訳ありません。
環境ですが、VB6(sp6) Win XP PRO IE6 です。
JRA HP から  競争成績等を開きデータをコピー保存するものです。
最終的に該当ページを開くことが出来ましたが、レース毎にページを開きたいのですがレース選択ボタン(イメージボタン)を選択できません。
色々とネット等検索したのですが.....

当該ソースは
<td rowspan="2" align="center" bgcolor="#E4E4DB"><a href="#" onclick="return doAction('/JRADB/accessS.html','pw01sde00052006040301/D2');"><img src="/common/img/keiba/btn_race-number1.gif" alt="1R" width="60" height="36" border="0"></a></td>

上記文から  オルタネートテキストの"1R"等を検索指定は可能でしょうか又はa hrefをクリックする方法をよろしくお願いします。


魔界の仮面弁士  2006-10-15 06:44:17  No: 96925

> 当該ソースは
そのボタンの位置が固定的なら、
  該当テーブル.rows(番号).cells(番号).firstChild.click
のように書けるかも。

> オルタネートテキストの"1R"等を検索指定は可能でしょうか
alt 属性の値が重複しない(ページ内で一意)という事でしょうか。
であれば、GetElementsByTagName メソッドの結果を For Each で列挙して、
個々の要素の alt プロパティを確認していけば良いかと。

> a hrefをクリックする方法を
a 要素の click メソッドとか。


Reach  2006-10-15 07:26:40  No: 96926

早々のご回答有難うござました。
alt 属性の値が重複しない(ページ内で一意)です。

コードが正しいかどうか自信ありませんが以下のとおりチェックしました。
     For Each objITEM In objIE.document.All
         If objITEM.GetElementsByTagName = "ALT" Then
             If objITEM.Value = "1R" Then
                objITEM.Click
             End If
          End If
     Next
結果はエラー91  変数未設定となりました。  .firstChild.clickも使用例等調べてみます。(1〜2日)不明な場合はよろしくご教授方お願いします。


魔界の仮面弁士  2006-10-15 08:46:52  No: 96927

> コードが正しいかどうか自信ありませんが
行き当たりばったりのコーディングに見えてしまうのは、気のせいでしょうか。(^^;

getElementsByTagName の方法で実装するのであれば、イメージ的には
このような感じになるかと思います。
# 掲示板上に直書きしたコードなので、動作のほどは保証しませんけど…。(^_^;)

 '文書中の IMG 要素を列挙する
 For Each imgElement In IE.document.getElementsByTagName("IMG")
   'alt属性が '1R' であるものを探す
   If imgElement.alt = "1R" Then
     'IMGを囲っている親要素(ここではA要素)を取得する
     Set anchorElement = imgElement.parentElement
     '取得したA要素のclickメソッドを実行する
     anchorElement.click
     Exit For
   End If
 Next


Reach  2006-10-16 07:32:53  No: 96928

魔界の仮面弁士様
  早々のご回答有難うございました。本来なら昨晩のうちに実施すればもっと早く返信できたのですが本日早朝より勤務のため取りやめました。
帰宅後debugした結果一発でokとなりました。さすが魔界の仮面弁士様です。
  一応、休憩時間にnetでgetElementsByTagNameを調べたら色々な記事があり、参考になりました。また、唯一の収穫はdomのmethod一覧を発見したことです。未熟な考えでhtmlのみでの検索では発見できませんでした。
先ずは、報告がてら御礼申し上げます。
  今後ともよろしくお願いします。有難うございました。


Reach  2006-10-16 07:36:03  No: 96929

ps. チェックマークのみです。


魔界の仮面弁士  2006-10-16 19:41:59  No: 96930

> 唯一の収穫は
色々な記事があったという割には、“唯一”の収穫でしたか…。

> domのmethod一覧を発見したことです。
VB6 の参照設定に MSHTML.TLB を含めた上で、F2キーで表示される
オブジェクトブラウザを眺めてみると、もう少し幸せになれるかも。

# オブジェクトブラウザだけでは、個々のメソッドの意味や使い方までは
# 分かりませんので、SDK の内容を合わせ読む必要があるでしょうけれども。


Reach  2006-10-17 23:24:50  No: 96931

# オブジェクトブラウザだけでは、個々のメソッドの意味や使い方までは
# 分かりませんので、SDK の内容を合わせ読む必要があるでしょうけれども。
 ご指摘有難うございます。勉強させていただきます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加