【ライブラリ共有】IE操作 指定属性の指定タグのタグインデックスを取得
シナリオ共有に「指定属性のを指定タグのタグインデックスを取得(IE操作)」をアップロードしました。
tag indexの自動取得について
↑こちらの質問に対する回答された内容、
IE 表示されているINPUTBOXのtagindexを取得したい
↑こちらの質問への回答した内容、をふまえ
指定属性:id,class,className,value
指定タグ:a,input,table,span,div
を選択して、タグインデックスを取得できるようにしました。(選択肢は、なんとなくえらびました。)
・・・
ライブラリ名:
指定属性のを指定タグのタグインデックスを取得(IE操作)
ライブラリの注釈:
■ドキュメント内の指定属性のを指定タグのタグインデックスを取得。
ウィンドウ識別名:操作対象のIEウィンドウを指定する。
フレーム番号 :操作対象のフレームの番号を指定する。(0~)
指定属性 :id,class,className,value から選んでください。
指定属性の内容 :指定属性で選んだ属性の内容を設定してください。
指定タグ :a,input,table,span,div から選んでください。
タグインデックス:取得したタグインデックスを格納する変数名を入力。
ライブラリのスクリプト:
ライブラリ「IE操作(指定リンクをクリック)」をベースにスクリプト変更しています。(WinActor ver6.2)
以下、変更箇所です。
[変更1]スクリプト上部、4行目
targetText = !リンクのテキスト!
を
shiteiZokusei = !指定属性|id,class,className,value!
targetText = !指定属性の内容!
shiteiTag = !指定タグ|a,input,table,span,div!
result = $タグインデックス$
に変更、
[変更2]真ん中くらいまで移動して
「' document内の指定されたテキストを含むリンクオブジェクトを取得する」の行の
4行下
Set nodes = document.document.getElementsByTagName("a")
を
Set nodes = document.document.getElementsByTagName(shiteiTag)
に変更。
[変更3]さらに2行下
If InStr(nodes(i).innerText, targetText) Then
を
If strComp(nodes(i).getAttribute(shiteiZokusei), targetText, 1) = 0 Then
に変更。
[変更4]さらにその下のほう
If element Is Nothing Then
から
Err.Raise 1, "", "リンクのクリックに失敗しました。"
End If
までを削除してください。
[変更5]削除したところに
SetUMSVariable result, i
を追加します。
変更内容は以上です。(5か所)
[変更1]で選択肢を変更することもできます。
よければお試しください。
■指定属性の class と className の使い分けですが、WebAPIを利用したサイトでは、className を指定するとよいようです。
・・・
質問の投稿された方々、回答されたS.Nさん、シナリオ共有のコツを教えていただいたスクリプト探究者さんに感謝。