在来自PowerShell的命令上在Firefox中执行JavaScript
我正在尝试为内部发行版制作Powershell应用程序。我的用户不能安装任何开发工具、浏览器扩展或可执行文件,我也不能 用户需要访问某个网页并从该网页中删除数据。目前,我可以将代码复制并粘贴到Firefox控制台中,以实现这一点,但由于浏览器支持,该代码在IE中失败。用户都将拥有Firefox 我正在尝试使用Powershell前端,以确保广泛的用户支持。我有一个GUI,可以使用搜索词并将Firefox导航到相关页面。但是,我找不到执行JS的方法 如果我使用IE,我会让Powershell做:在来自PowerShell的命令上在Firefox中执行JavaScript,javascript,powershell,firefox,Javascript,Powershell,Firefox,我正在尝试为内部发行版制作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,在那里我可以对其进行进一步操作或在本地保存结果。站点上的JavaScript是否加载了一些以前没有的内容?如果是这样,您可以使用PowerShell触发相同的JavaScript操作(AJAX调用)并以这种方式获得结果。如果这听起来像你的情况,我将带你完成整个过程。脚本必须在加载特定页面的情况下运行,否则我会出现CORS错误。如果我尝试使用wget从Powershell版本的脚本中执行此操作,则网站会将我捕获。它使用普通的XMLHttpRequests根据用户输入对该站点进行各种调用,并收集相关数据。Powershell可以做到这一点吗?有关提取要在Powershell中使用的JavaScript调用的方法,请参阅中的解决方案。