使用Firefox截屏

时间:2019-06-13 03:00:33

标签: powershell firefox start-process

我想弄清楚为什么这个简单的命令不起作用。

我正在尝试根据[本文] [1]使用PowerShell和Firefox拍摄域列表的屏幕快照。

当前,我有以下代码,但它不会产生屏幕截图,并且我不确定什么是错误的代码。我们非常感谢您提供的任何帮助和/或指向正确方向的观点。

$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/

1 个答案:

答案 0 :(得分:1)

请确保在您链接的文章中指定协议(https://http://):

# Tested with Developer Edition of Firefox
$domain = "example"
$domainName = example.com"
$screenshotdir = "C:\SO\56572800"


# 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://,如果适用),则会挂起很长时间,因此您可能会觉得它在起作用。 / p>


正如评论中提到的@lloyd一样,您必须确保$screenshotdir的值已正确分配并且对函数可用。

此外,这是一个很好的做法,即使您的示例中仍然可以使用空格来修剪命令中的前导/尾随空格。我是说这些:

                                                                HERE |          HERE |                                    HERE |
Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe " -ArgumentList " --screenshot $screenshotdir\$domain.png ", "$domainName" -Wait