Я пишу скрипт powershell, который имитирует действия, выполняемые пользователем на странице.
У меня проблема с выполнением нажатия на кнопку. Страница имеет форму и внутри кнопку, которая сохраняет изменения в базе данных:
input type="button" onClick="__doPostBack('someIdentifier','SAVE')" value="Save changes"
Мне нужно вызвать это на стороне клиента. Проблема в том, что кнопка сама имеет id = "" и tag = "", поэтому следующее не работает:
$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 просто выполняют некоторые операции, но единственный эффект, который они имеют, - это использование моего ЦП, которое достигает максимума.
Я думал о том, чтобы получить elements[]
формы и найти там кнопку, но это не так (эффекты, как в предыдущем случае).
Есть ли другой (блестящий) способ сделать это (о котором я, очевидно, не знаю)? Мне нужно что-то вроде InvokeScript
webBrowser = new System.Windows.Forms.WebBrowser()
webBrowser.Document.InvokeScript(@"__doPostBack", new object[] {@"someIdentifier", @"SAVE"});
но мне нужно использовать экземпляр IE, управляемый PowerShell (или другим языком сценариев / программирования, может быть, VBScript?), А не автономное приложение .NET.