2009-09-18 7 views
5

PowerShellを使用してInternet Explorerの自動化スクリプトを作成しています。ここで私はIEのCOMオブジェクトを起動する方法です:PowerShellを使用してJavaScriptトラフを実行するInternet Explorerのcomインターフェイス

$ie = New-Object -com "InternetExplorer.Application" 
$ie.Navigate("about:blank") 
$ie.visible = $true 

$doc = $ie.Document 

だから、私は何をしたいの$ドキュメントオブジェクト上で、いくつかのJavaScriptを実行することです。たとえば、私は "submitCommand( 'lookup')"を実行するonclickイベントを持つページ上のアイテムを持っているので、そのページ上のオブジェクトを見つけ出す代わりに$ doc上で直接実行したいと思います。その上でClick()メソッドを呼び出します。

オブジェクトには名前もIDもないので、ページ上の位置(例:ページの11番目のスパンアイテム)にのみ依存できるため、変更するのが簡単です。

また、クラスに基づいて要素をどのように選択しますか?それは "ボタン"が自分のクラスであるので、多くの助けになります。

+0

また、クラスに基づいて要素をどのように選択しますか?それは "ボタン"が自分のクラスであるので、多くの助けになります。 – Philippe

+2

@Philippe:多くの情報と質問で自分の質問にコメントするのではなく、単に既存の質問を編集しないのはなぜですか? – AnthonyWJones

答えて

4

$(その属性に基づいて)あなたが必要なものをフィルタリングして、呼び出すためにどこ-対象に= @($ ie.document.getElementsByTagName( "SPAN"))

パイプをまたがる

感謝クリック方法:

$span11 = $spans | where {$_.innerText -eq 'something'} 
$span11.click() 
+0

私が望んでいた解決策ではありませんが、私の問題の解決策は間違いありません。ありがとう。 – Philippe

+0

ところで、どこに配列の結果を格納する方法はありますか?フィルタリングに複数の結果がある場合、このような変数に格納すると、最初の結果のみが返されます。 – Philippe

+1

'@()'で囲むことができます: $ span11 = @($ span | where {$ _。innerText -eq 'something'}) –

関連する問題