HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0622
ineIEエレメントのgetElementsByClassNameのhspでの記述方法がわかりません2解決


ine

リンク

2020/6/22(Mon) 05:32:53|NO.90832

COMオブジェクトでIEを呼び出して、
各IEメソッド、エレメントを活用し特定のページの目的の<input>をClickメソッドで自動で押すプログラムを作成中なのですが、目的の<input>にname属性が割り振られていないため、getElementsByClassNameエレメントを活用し、class属性からタグを特定する必要があるのですが、getElementsByClassNameのhspでの記述方法がわかりません。
HSP3プログラミングマニュアルのCOMコンポーネント呼び出しの項目を読んでみたりしたのですが、他のメソッドやエレメントの記述はどうにか問題がないものの、今のところgetElementsByClassNameエレメントの記述方法だけわかりません。

例として、Amazonトップページの検索ボタンは

<input type=”submit” class=”nav-input” value=”検索” tabindex=”7″/>
といった具合になっているのですが、もしこのボタンの特定・自動クリックをhspで行うにはどのように記述すればよいでしょうか?
comオブジェクトの作成やページへのアクセス、ページの読み込み完了までは問題ないと思うので省略させていただきますが、自分のソースでは

ie_document=ie("Document") ie_button=ie_document("getElementsByClassName","nav-input") ie_button->"Click"
と書きましたが、これだとClickメソッド実行時に「パラメータが無効」とエラーが出てしまうので、多分2行目が正しくないですよね。。

単純に記述方法がわからないという件なのですが、hspでのIEのメソッドやエレメントによる制御に関してネットで調べても情報があまりなくてわからなかったので質問させていただきました。
ご存じの方がおられましたらお教えいただければ助かります<(_ _)>

余談ですが、練習がてら様々なウェブサイトでhspでの自動化プログラムなどを書いてみたりしていますが、name属性を持つ<input>をClickメソッドで自動で押すことはhspでできました。
具体的には、以下のテスト用ページで成功しました(すみません直リンクの許可はとっていませんが、IE制御のテスト用ページという旨で設けられたウェブページなのでここで直リンクさせていただいても大丈夫かなと勝手に解釈させていただいた次第です)

https://www.vba-ie.net/code/test.php



この記事に返信する


TOMATO

リンク

2020/6/22(Mon) 07:27:46|NO.90833

getElementsByClassNameは古いIEだと使用できないようなので、
下記のモジュールなどでレジストリ書き換えが必要になるようで。
http://hsp.tv/play/pforum.php?mode=pastwch&num=73359

IE11が入っていてもIEコンポーネントは
デフォルトではIE7相当で動作する模様。

▼ getElementsByClassNameについて言及している過去スレ
http://hsp.tv/play/pforum.php?mode=pastwch&num=77694
http://hsp.tv/play/pforum.php?mode=pastwch&num=75317
http://hsp.tv/play/pforum.php?mode=pastwch&num=68035



ine

リンク

2020/6/23(Tue) 12:08:40|NO.90841

TOMATO様、今回もご回答いただき大変助かります<(_ _)>

ご提示いただいた過去スレ参考になります。設置したIEコンポーネントは古いバージョンのIEになってしまうんですね、自分で気づくべきでした;;
レジストリ書き換えという打開策は自力では到底思いつかなかったので、試してみようと思います。

getElementsByClassNameと過去スレで検索すればよかったのですね;;記述方法も間違っていたのでご提示いただいた過去スレで確認出来てよかったです。

解決とさせていただきます、どうもありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.