1

ここにある Internet Explorer 自動化スクリプトを使用しています: http://www.pvle.be/2009/06/web-ui-automationtest-using-powershell/

これにより、次のようなコマンド (関数) を使用してフォーム データを簡単に投稿できます。

NavigateTo "http://www.websiteURI/"
SetElementValueByName "q" "powershell variable scope"
SetElementValueByName "num" "30"
SetElementValueByName "lr" "lang_en"
ClickElementById "sb_form_go"

上記では、値を要素に投稿し、クリックしてフォームを送信できます。

ヘルパー関数を使用して、Powershell の Web クライアントで同等のことをしたいと思います。そのようなスクリプトは見つかりませんでした。私が見つけた最も近いものは、The Scripting Guys のSend-WebRequest でした

http://gallery.technet.microsoft.com/scriptcenter/7e7b6bf2-d067-48c3-96b3-b38f26a1d143

それが私が期待することをするかどうかさえわかりません(私が望むことを行う方法を示す実際の例がないため).

とにかく、実際の例で示したものと同等のことを開始するための助けをいただければ幸いです(できるだけ簡単に)。おまけとして、送信したいフォーム要素を知るために、URI の要素名のリストを取得することもできます。

PS: ユーザー エージェントと資格情報も指定できるようにする必要があります。したがって、これらが含まれている例が理想的です。

4

1 に答える 1

1

Invoke-WebRequest コマンドを確認しましたか? (powershell 3.0以上が必要です)データを送信するには、次のようにするとうまくいくと思います

#POSTing data
Invoke-WebRequest http://www.websiteURI/ `
    -UserAgent 'My User Agent' `
    -Credential $cred `
    -Method Post `
    -Body @{
        q = 'powershell variable scope'
        num = 30
        lr = 'lang_en'
    }

おまけとして、Invoke-WebRequest の結果には、ページ上の InputFields のコレクションが含まれています。これを使用して、設定するフォーム要素のリストを取得できます。

#List input elements
Invoke-WebRequest http://www.websiteURI/ | select -ExpandProperty InputFields
于 2013-11-09T16:15:22.270 に答える