本ページには広告が含まれています。
Web上(IE)の指定したalt属性を含む画像をクリックします。クリックに成功した場合はTrue、失敗した場合はFalseを返します。
- 構文
- Boolean = altClick( IE, alt, num, fullMatchFlg )
- 引数
- IE 必須
- IEオブジェクト
- alt 必須
- クリックするalt属性
- num 省略可
- 何番目をクリックするか
- fullMatchFlg 省略可
- 完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定
- 戻り値
- TRUE
- 成功
- FALSE
- 失敗
プログラム
//////////////////////////////////////////////////
// 【引数】
// IE : IEオブジェクト
// alt : クリックするalt属性
// num : 何番目をクリックするか
// fullMatchFlg : 完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定
// 【戻り値】
// TRUE : 成功、FALSE : 失敗
//////////////////////////////////////////////////
FUNCTION altClick(IE, alt, num = 1, fullMatchFlg = FALSE)
DIM cnt = 0
IMG_LST = IE.document.Images
IFB num = -1 THEN
FOR n = 0 TO IMG_LST.length - 1
SELECT fullMatchFlg
CASE TRUE
IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1
CASE FALSE
IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1
SELEND
NEXT
RESULT = cnt
ELSE
DIM flg = FALSE
FOR n = 0 TO IMG_LST.length - 1
SELECT fullMatchFlg
CASE TRUE
IFB IMG_LST.Item(n).Alt = alt THEN
cnt = cnt + 1
IFB cnt = num THEN
IMG_LST.Item(n).Click()
flg = TRUE
BREAK
ENDIF
ENDIF
CASE FALSE
IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN
cnt = cnt + 1
IFB cnt = num THEN
IMG_LST.Item(n).Click()
flg = TRUE
BREAK
ENDIF
ENDIF
SELEND
NEXT
RESULT = flg
ENDIF
FEND
解説
- 2行目
- 画像の数を代入する変数cntを宣言。
DIM cnt = 0
- 3行目
- Webページ上にある画像情報を取得。
IMG_LST = IE.document.Images
- 5-13行目
- 画像の数だけループ。fullMatchFlg(完全一致フラグ)がTRUEでn番目の画像のalt属性と変数altが完全一致していたら、変数cntをインクリメントする。fullMatchFlg(完全一致フラグ)がFALSEでn番目の画像のalt属性に変数altが含まれて(部分一致して)いたら、変数cntをインクリメント。変数cntを戻り値として返す。
FOR n = 0 TO IMG_LST.length - 1 SELECT fullMatchFlg CASE TRUE IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1 CASE FALSE IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1 SELEND NEXT RESULT = cnt
- 15行目
- 画像をクリックしたかどうかを代入する変数。クリックされたらTrue。
DIM flg = FALSE
- 16-37行目
- 画像の数だけループ。n番目のalt属性が変数altと完全一致または部分一致したら、変数cntをインクリメント。cnt=numでその画像をクリックしflgをTrueにして、FOR文を抜ける。
FOR n = 0 TO IMG_LST.length - 1 SELECT fullMatchFlg CASE TRUE IFB IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1 IFB cnt = num THEN IMG_LST.Item(n).Click() flg = TRUE BREAK ENDIF ENDIF CASE FALSE IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1 IFB cnt = num THEN IMG_LST.Item(n).Click() flg = TRUE BREAK ENDIF ENDIF SELEND NEXT
- 38行目
- 変数flgを戻り値として返す。
RESULT = flg
関連記事
- IE.Refresh2 メソッド
- 指定されたリフレッシュレベルで現在表示されているファイルを再読み込みします。
- CHKIMG関数 (スクリプト関数)
- 指定画像が画面上にあるかチェックしあればその情報を返します。
- SAVEIMG関数 (スクリプト関数)
- SAVEIMGは、第一引数に指定した絶対パス・相対パスに画像を保存する関数です。第一引数を省略した場合クリップボードに、第二引数に0を指定でスクリーン全体をコピーします。
- getBitmap関数 (自作関数)
- 引数に指定したビットマップ画像のサイズ・幅・高さ・ビットの深さを配列で返します。
- IEGETFRAME関数 (スクリプト関数)
- BusyWait関数 (自作関数)
- IEオブジェクトの読み込みが完了するのを待ちます。
- IE.ExecWB メソッド
- コマンドを実行します。
- IE.GoForward メソッド
- 履歴リストの1つ後の項目に移動します。
- IE.Stop メソッド
- 読込中のWebページやダウンロードのキャンセル、BGMやアニメーションの動的要素を停止します。
- IE.Document プロパティ
- ドキュメントオブジェクトを取得