0

Windows10(1803)のIE11(32Bit)にて開かれたページのリンクから子画面(Window.open)のテキスト取得を行う部品についてご質問があります。

現在、親画面から開かれた子画面のテキスト(<span id="aaa">あああああ</span>)を取得(あああああ)しようと

04_自動記録アクションの『文字列取得(IE)』を利用し、

ウィンドウ識別名を選択後、対象コントロール指定を設定しようと、上記表示されている「あああああ」をクリックすると

『選択できないコントロールです』と表示されてしまうため、詳細設定で以下の設定を行いました。

tag 値⇒span

id 値⇒aaa

の2点を設定しチェックもこの2点で行いましたが取得できません。

また、17_IE関連の03_テキスト取得の『IE操作(指定ID内のテキストを取得』にて実施してみましたがこちらも取得できませんでした。

shell.Applicationにて取得した「document.title」をmsgboxでデバッグしてみましたが、子画面のmetaタグにtitleが未設定であることが原因なのか?

取得できずに「指定されたタイトルの・・・」のエラーが発生します。

この様な状況の場合にテキストを取得する部品は何になりますでしょうか?

新しいコメントを投稿

IE(指定***内のテキストを取得)のスクリプトを変更することで解決できました。

スクリプトはブラウザのタイトル部分でチェックしており、
ページのmetaタグにTitleが無い場合は、取得できない状況でしたので、
その場合は、LocanURLを利用し開かれているブラウザのURLもチェックする事で
オブジェクトを取得できるようになりました。

▼カスタマイズした部分を抜粋

‘ 指定されたページのdocumentを取得する
Set document = Nothing
Set shell = CreateObject(“Shell.Application”)
For i = 0 To shell.Windows.Count – 1
Set window = shell.Windows(i)

title = Empty
LocationURL = Empty ‘開かれているブラウザのURL設定用
On Error Resume Next
title = window.document.title
locurl = window.LocationURL ‘開かれているURL
On Error Goto 0

If (title <> Empty OR locurl <> Empty) Then
If (InStr(title, ieTitle) <> 0 OR InStr(locurl, ieTitle) <> 0) Then
Set document = window.document
Exit For
End If
End If
Next

となります。
URLのみで判断しますと、複数同じURLのページを開いている場合には注意が必要になります。(基本、閉じては開くを繰り返せば問題は無いと思っておりますが)

以上、自己解決とさせて頂きます。