IELINK

IELINK関数
Web上(IE)のリンクの選択 戻値 = IELINK( IE, リンク表示文字, [番号, 完全一致フラグ] )
引数
IE
IEオブジェクト
リンク表示文字
表示されているリンク項目(一部分だけでも可)
番号
リンク表示文字が同じ場合に順番指定
完全一致フラグ
Trueの時は完全に一致するものだけを(デフォルト:False)
戻値
TRUE:正常、 FALSE:処理不能

サンプルページのリンクを選択する

2種類のリンクをクリックする

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://canal22.org/sample0001/")
BusyWait(IE)

CTRLWIN(GETID("Sample0001"),MAX)
MSGBOX("IELink(IE,<#DBL>あいさつの種類<#DBL>)<#CR>を実行します")

IELink(IE,"あいさつの種類")
BusyWait(IE)

MSGBOX("IELinkによりリンクがクリックされ、<#CR>サイト内移動しました")

MSGBOX("次は同じリンク文字の場合<#CR>2番目をクリックするパターンです")

IELink(IE,"あいさつの種類",2)
BusyWait(IE)


//------
Procedure BusyWait(ie)
	repeat
		Sleep(0.2)
	until (! ie.busy) and (ie.readyState=4)
Fend

解説

このサンプルを実行すると、
サンプルページの2つある「あいさつの種類」の上が先にクリックされ、
続いて「あいさつの種類2」がクリックされます。 リンク表示文字に限られていることから、簡易的に利用するには向いていますが、
確実なページ遷移を望む場合は、IE.Navigate(URL)のほうが良いでしょう。

また、画像リンクをクリックしたい場合は、『画像リンクをクリックしたい!』をご参照ください。 さらにボタン等の選択の場合は、IESETDATAを参照してください。

タグ

2012年7月28日 | コメントは受け付けていません。 |

カテゴリー:関数一覧

画像リンクをクリックしたい!

画像リンクのクリックでハマりました。解決方法はありませんか?
ちなみにボタンのクリックはできています。
せっかくイイ感じでスクリプトを生成していても、
画像リンクのクリック部分だけ、対話式にしないといけなくて、
結局自動化できない。。。なんてことありますね。

かくいう私もその1人でした。
しかし、COMコンポーネントの利用で以下のように、
解決します。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.navigate("http://canal22.org/sample0006/")
REPEAT
    SLEEP(0.1)
UNTIL (!IE.Busy) AND (IE.ReadyState = 4)

// 画像一覧を取得
IMG_LST = IE.Document.Images

// 画像一覧の中からalt属性が一致する画像をクリックする
FOR I = 0 TO IMG_LST.length - 1
    IMG_ALT = "2012年9月1日(土)UWSCセミナー勉強会@東京 のお知らせ"

    // 画像一覧からalt属性でヒットする
    IFB IMG_LST.Item(I).Alt = IMG_ALT THEN
        // 次ページに遷移する。
        MSGBOX("ページ遷移します。")
        IMG_LST.Item(I).Click()
    ENDIF
NEXT

解説

ヘルプなどに出ていないので、IMG_ALTIE.Document.Imagesといった部分に面食らったかもしれません。

これはCOM(IE)コンポーネントという機能を利用していて、
UWSCからCOMを利用できるが、COMがUWSCの機能ではないので、
ヘルプなどには、ほとんど載りません。

しかし、UWSC コバヤシ式では、UWSC 上級ページにて、
こういったCOMコンポーネントの利用方法を解説しているので、
よろしければ、ご参照ください。

今回のサンプルはconfrageさんのサイトを参考にさせてもらいました。

参考ページ
http://www.confrage.com/uwsc/ie/imglink/imglink.html

タグ

2012年7月5日 | コメントは受け付けていません。 |

カテゴリー:Q&A

このページの先頭へ