似たようなメニュー名があるwebページ内で確実に指定メニュー名をクリックしたい
ユーザーのログイン権限によって可変するIEのメニューページ内で指定のメニューをクリックさせたいです。
TagNumはログイン権限と同様にユーザによって可変してしまいます。
CLASSNameも他メニューと同一Nameを使用しているため使用できません。
クリックしたいメニュー名:CCC登録
似ているメニュー名:AAA登録、BBB登録、DDD登録
環境:IE10
WinActor:6
htmlソースをみると、Shapeの後に対象のメニュー名テキストがあります。
IE操作(Debug全タグ情報詳細版)で抽出した結果、InnerTextに指定メニュー名がありました。
FONT class=menuName
" href="#"
shape="">CCC登録
InnerText=CCC登録
◆試したこと
IE操作(指定タグの指定テキストをクリック)
04_自動記録アクション>クリック(IE)
→TagNumが可変するためNG
17_IE関連>02_クリック>
IE操作(指定テキストをクリック)
IE操作(指定タグの指定テキストをクリック)
→ほかの類似ボタンをクリックしてしまう
Crrl+Fで登録メニュー名を文字列検索し、クリックする
→他ユーザのメニュー遷移の挙動が見えないため確実に「CCC登録」をクリックできるかはわからない。
似たようなメニュー名が存在するため確実に指定メニュー名に遷移する方法をご教示いただけないでしょうか?
固有の値がInnerTextのようなので、InnerTextを指定してクリックというのはできないでしょうか?
指定タグの指定テキストをクリックのスクリプト部分の下記、
InStr(AllObj.innerHTML, targetText) > 0 Then
InStr(AllObj.GetAttribute("value"), targetText) > 0
の部分をそれぞれ
StrComp(AllObj.innerText, targetText, 1) = 0 Then
StrComp(AllObj.GetAttribute("value"), targetText, 1) = 0 then
として、お試しいただけますか。
改善する可能性があるかと思います。


S.N様
ご回答くださりありがとうございます。
「指定タグの指定テキストをクリック」ライブラリの修正は
●変更前
If InStr(AllObj.innerText, targetText) > 0 Then
ElseIf InStr(AllObj.GetAttribute(“value”), targetText) > 0 Then
●変更後
If StrComp(AllObj.innerText, targetText, 1) = 0 Then
ElseIf StrComp(AllObj.GetAttribute(“value”), targetText, 1) = 0 then
でよろしいでしょうか?
こちらで設定し動かしてみると画面が遷移されませんでした。
しかしクリックした文字を待機ボックスで結果を返すと確かに対象のメニュー名を対象としていることは確認できました。
補足でご回答いただいた「指定リンクをクリック」ですとどのようにスクリプトを修正すればよいでしょうか?
このあたりでしょうか?
—-
‘ document内の指定されたテキストを含むリンクオブジェクトを取得する
Set element = Nothing
On Error Resume Next
Dim nodes, i
Set nodes = document.document.getElementsByTagName(“a”)
For i = 0 To nodes.length – 1
If InStr(nodes(i).innerText, targetText) Then
Set element = nodes(i)
Exit For
End If
Next
On Error Goto 0
—-

指定リンクをクリックのスクリプトでは、
If InStr(nodes(i).innerText, targetText) Then
の部分を
If StrComp(nodes(i).innerText, targetText, 1) = 0 Then
に変更してみてください。
指定タグの指定テキストの設定で、クリック対象タグは「a」になっていますか?
併せてご確認お願いします。

S.N様
ありがとうございます。
IE操作(指定リンクをクリック)をご教示いただいたスクリプトに修正することで
画面が遷移できることを確認いたしました。
大変助かりました。
ベストアンサーとさせていただきます。
補足です。
当該指定タグの指定テキストをクリックの「クリック対象テキスト」を
Inner Textを完全一致で設定すると良いかと思います。
画面遷移が目的でしたら、
「指定リンクをクリック」でも、同様のスクリプト修正でも対応可能かもしれません。