У меня есть сценарий, который переходит на сайт, регистрируется, а затем нажимает кнопку, чтобы загрузить файл на этот сайт.Скрипт Powershell не прогрессирует, пока окно «выбрать файл для загрузки» вверх
После нажатия кнопки появляется подсказка, и я до сих пор понял, что SendKeys является возможным решением. Тем не менее, скрипт застревает после появления окна.
Вот мой Kode:
$upload = $ie.Document.body.getElementsByTagName("input") | Where-Object {$_.Name -match "userfile"}
$upload.click()
$wshell.SendKeys("c:\path_to_my_file")
Я даже попытался тестирования с отложенной записи хоста. В этом случае только печатает на консоли после того как я вручную нажмите кнопку «Отмена» на «Выберите файл для загрузки»
$upload = $ie.Document.body.getElementsByTagName("input") | Where-Object {$_.Name -match "userfile"}
$upload.click()
Write-Host "test"
Хотелось бы узнать, как это сделать без стороннего программного обеспечения, поэтому такие правила исключают AHK. Invoke-WebRequest выглядит интересно. Есть ли способ заметно следить за его прогрессом, например, в консоли? (например, знать, успешно ли он входит в систему и использует правильную кнопку и т. д.) – user242491
AHK - это инструмент для этого типа вещей (его портативный ~ 300 КБ exe, который вы можете поставить рядом с скриптом, получить его от шоколадного или без разницы..). IMO, он должен быть в Windows с самого начала в качестве встроенного инструмента. – majkinetor
'iwr' не будет нажимать никаких кнопок. Вам необходимо запросить POST-запрос и передать данные формы через аргумент 'body'. См. 'Man iwr -examples'. Это путь более пуленепробиваемый, чем любая отправка ключей и тому подобное. – majkinetor