Я пытаюсь сделать приложение Powershell для внутреннего распространения. Мои пользователи не могут устанавливать какие-либо инструменты разработчика, расширения браузера или исполняемые файлы, и я тоже не могу.
Пользователи должны посещать веб-страницы и соскребать данные с этой страницы. В настоящее время я могу скопировать и вставить код в консоль Firefox, которая выполняет это, но этот код завершается ошибкой в IE из-за поддержки браузера. У всех пользователей будет Firefox.
Я пытаюсь использовать интерфейс PowerShell для обеспечения широкой поддержки пользователей. У меня есть GUI, который может взять поисковый запрос и перейти на Firefox к соответствующей странице. Тем не менее, я не могу найти метод для выполнения моего JS.
Если бы я использовал IE, я бы попросил Powershell сделать:
$ie = New-Object -COM InternetExplorer.Application -Property @{
Navigate = $url
Visible = $false
}
Function ExecJavaScript($ie, $jsCommand, [switch]$global)
{
if (!$global) {
$jsCommand = "document.body.setAttribute('PSResult', (function(){$jsCommand})());"
}
$document = $ie.document
$window = $document.parentWindow
$window.execScript($jsCommand, 'javascript') | Out-Null
if (!$global) {
return $document.body.getAttribute('PSResult')
}
}
$result = ExecJavaScript $ie $SomeJSCodeHere
Write-Output $result
, но мой код не работает в IE11 Я не могу этого сделать. Я не могу найти подобный метод, чтобы сделать это с Firefox. Преимущество приведенного выше сценария заключается в том, что он передает результаты кода JS обратно в Powershell, где я могу работать с ним дальше или сохранять результаты локально.