使用 Firefox 截图
Take Screenshot with Firefox
我费了好大劲才弄清楚为什么这个简单的命令不起作用。
我正在尝试根据[这篇文章][1]使用 PowerShell 和 Firefox 截取域列表的屏幕截图。
目前我有以下代码,但它没有生成屏幕截图,我不确定代码有什么问题。非常感谢任何帮助and/or指向正确方向的一点。
$screenshotdir = "$PSScriptRoot\FF_Screenshots"
If(!(Test-Path -Path $screenshotdir)) {New-Item -Path $PSScriptRoot -Name "FF_Screenshots" -ItemType Directory}
function getFireFoxScreenShot() {
$importedCSV = Import-Csv .\Domains.csv
foreach ($url in $importedCSV) {
$domainName = $url.Name #example google.com
$domain = $url.Domain #example google (no tld)
if (-not ([string]::IsNullOrEmpty($domainName))){
Echo "Getting Screen Shot for: $domainName"
Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain.png ", "$domainName" -Wait
}
}
}
getFireFoxScreenShot
[1]: https://www.bleepingcomputer.com/news/software/chrome-and-firefox-can-take-screenshots-of-sites-from-the-command-line/
确保指定协议(https://
或 http://
),因为它在您链接到的文章中:
# Tested with Developer Edition of Firefox
$domain = "example"
$domainName = example.com"
$screenshotdir = "C:\SO572800"
# This works
Start-Process -FilePath "C:\Program Files\Firefox Developer Edition\firefox.exe" -ArgumentList "--screenshot $screenshotdir$domain-with-https.png", "https://$domainName" -Wait
# But doesn't work
Start-Process -FilePath "C:\Program Files\Firefox Developer Edition\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain-no-https.png ", "$domainName" -Wait
根据我的检查,如果您不指定 https://
前缀(或 http://
如果适用),它会挂起很长时间,因此您可能认为它正在工作.
正如评论中提到的 @lloyd,您必须确保 $screenshotdir
的值已正确分配并可用于函数。
此外,从您的命令中 trim leading/trailing 空格是一个好习惯,即使在您的示例中它仍然适用于空格。我的意思是这些:
HERE | HERE | HERE |
Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain.png ", "$domainName" -Wait
我费了好大劲才弄清楚为什么这个简单的命令不起作用。
我正在尝试根据[这篇文章][1]使用 PowerShell 和 Firefox 截取域列表的屏幕截图。
目前我有以下代码,但它没有生成屏幕截图,我不确定代码有什么问题。非常感谢任何帮助and/or指向正确方向的一点。
$screenshotdir = "$PSScriptRoot\FF_Screenshots"
If(!(Test-Path -Path $screenshotdir)) {New-Item -Path $PSScriptRoot -Name "FF_Screenshots" -ItemType Directory}
function getFireFoxScreenShot() {
$importedCSV = Import-Csv .\Domains.csv
foreach ($url in $importedCSV) {
$domainName = $url.Name #example google.com
$domain = $url.Domain #example google (no tld)
if (-not ([string]::IsNullOrEmpty($domainName))){
Echo "Getting Screen Shot for: $domainName"
Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain.png ", "$domainName" -Wait
}
}
}
getFireFoxScreenShot
[1]: https://www.bleepingcomputer.com/news/software/chrome-and-firefox-can-take-screenshots-of-sites-from-the-command-line/
确保指定协议(https://
或 http://
),因为它在您链接到的文章中:
# Tested with Developer Edition of Firefox
$domain = "example"
$domainName = example.com"
$screenshotdir = "C:\SO572800"
# This works
Start-Process -FilePath "C:\Program Files\Firefox Developer Edition\firefox.exe" -ArgumentList "--screenshot $screenshotdir$domain-with-https.png", "https://$domainName" -Wait
# But doesn't work
Start-Process -FilePath "C:\Program Files\Firefox Developer Edition\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain-no-https.png ", "$domainName" -Wait
根据我的检查,如果您不指定 https://
前缀(或 http://
如果适用),它会挂起很长时间,因此您可能认为它正在工作.
正如评论中提到的 @lloyd,您必须确保 $screenshotdir
的值已正确分配并可用于函数。
此外,从您的命令中 trim leading/trailing 空格是一个好习惯,即使在您的示例中它仍然适用于空格。我的意思是这些:
HERE | HERE | HERE |
Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe " -ArgumentList " --screenshot $screenshotdir$domain.png ", "$domainName" -Wait