私はページ上でユーザが実行したアクションをシミュレートするpowershellスクリプトを書いています。 ボタンをクリックする際に問題があります。ページには、データベースへの変更を保存するフォームと内部ボタンがあります。IE内でpowershell経由で__dopostbackを呼び出す
input type="button" onClick="__doPostBack('someIdentifier','SAVE')" value="Save changes"
クライアント側から呼び出す必要があります。
$ie = new-object -com "InternetExplorer.Application";
$ie.visible = $true;
$ie.navigate("http://myTestedPage.com");
$doc = $ie.Document;
#doesn't work
$save = $doc.getElementByID("")
#doesn't work neither
$save = $doc.getElementsByTagName("");
#so how to call
$save.click();
getElementByIdをとgetElementsByTagNameの両方がちょうどいくつかの操作を実行しますが、彼らが持っている唯一の効果はにジャンプする私のCPU使用率である:問題は、次が動作しないので、それは自己が「「= IDを持っている」とタグ=」というボタンですmax。
フォームと検索ボタンのelements[]
を取得することを考えていましたが、どちらの効果もありません(以前のような効果)。
これを行うには他にも(鮮やかな)方法がありますか?私はInvokeScript
webBrowser = new System.Windows.Forms.WebBrowser()
webBrowser.Document.InvokeScript(@"__doPostBack", new object[] {@"someIdentifier", @"SAVE"});
ようなものが必要でしょうが、私は(多分またはその他のスクリプト/プログラミング言語、VBScriptの?)のPowerShellによって操作IEのインスタンスではなく、.NETスタンドアロンアプリを使用する必要があります。
ご質問にはお答えできませんが質問の背後にある質問にお答えします。だから、私は__postbackを直接呼び出す必要はありません...しかし、誰かがそれをやる方法を知っていれば、知識を共有してください! – yoosiba