0

ブラウザベースのアプリケーションをテストする自動化スクリプトを使用しています。ロードした各ページの表示テキストをテキストファイルとして保存したいのですが。これは、現在開いているブラウザウィンドウで機能する必要があります。を使用するいくつかのソリューションに出くわしましたInternetExplorer.Applicationが、現在開いているページである必要があるため、これは機能しません。

理想的には、vbscriptを使用してこれを実現したいと思います。これを行う方法はありますか?

4

1 に答える 1

6

次のように、すでに実行中のIEインスタンスにアタッチできます。

Set app = CreateObject("Shell.Application")
For Each window In app.Windows()
  If InStr(1, window.FullName, "iexplore", vbTextCompare) > 0 Then
    Set ie = window
    Exit For
  End If
Next

次に、次のようにドキュメントの本文を保存します。

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("output.txt", 2, True)
f.Write ie.document.body.innerText
f.Close

ページに非ASCII文字が含まれている場合は、Unicodeエンコーディングで出力ファイルを作成する必要があります。

Set f = fso.OpenTextFile("output.txt", 2, True, -1)

または、UTF-8として保存します。

Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type     = 2 'text
stream.Position = 0
stream.Charset  = "utf-8"
stream.WriteText ie.document.body.innerText
stream.SaveToFile "output.txt", 2
stream.Close

編集:このようなものは、ドキュメント本文のスクリプトコードを取り除くのに役立つ可能性があります:

Set re = New RegExp
re.Pattern    = "<script[\s\S]*?</script>"
re.IgnoreCase = True
re.Global     = True

ie.document.body.innerHtml = re.Replace(ie.document.body.innerHtml, "")

WScript.Echo ie.document.body.innerText
于 2013-02-23T11:19:12.043 に答える