gpt4 book ai didi

internet-explorer - 让 powershell 进入 ie 类,并在 ui 测试期间截取 ie 窗口的屏幕截图

转载 作者:行者123 更新时间:2023-12-03 00:54:48 27 4
gpt4 key购买 nike

所以我正在使用 power shell 运行 ui 测试。

当我收到错误时,我想只截取 ie 窗口的屏幕截图,这可以通过 alt print scrn 完成

%{prtsc}

但它只需要事件窗口的 jpg。

我试过这个
$h = (Get-Process iexplore).MainWindowHandle
SetForegroundWindow((Get-Process -name iexplore).MainWindowHandle)
sleep -秒 2
$h = (Get-Process -id $pid).Ma​​inWindowHandle

此外,任何有关识别错误的方法的帮助都将非常感谢。

function screenshot
{
param(
[Switch]$OfWindow
)
begin {
Add-Type -AssemblyName System.Drawing
$jpegCodec = [Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() |
Where-Object { $_.FormatDescription -eq "JPEG" }
}
process {
Start-Sleep -Milliseconds 250
if ($OfWindow) {
[Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")
} else {
[Windows.Forms.Sendkeys]::SendWait("{PrtSc}")
}

Start-Sleep -Milliseconds 250
$bitmap = [Windows.Forms.Clipboard]::GetImage()
$ep = New-Object Drawing.Imaging.EncoderParameters
$ep.Param[0] = New-Object Drawing.Imaging.EncoderParameter ([System.Drawing.Imaging.Encoder]::Quality, [long]100)
$screenCapturePathBase = "$pwd\ScreenCapture"
$c = 0
while (Test-Path "${screenCapturePathBase}${c}.jpg") {
$c++}

$bitmap.Save("${screenCapturePathBase}${c}.jpg", $jpegCodec, $ep)
}
}

最佳答案

设置事件窗口

您需要做一些不同的事情。首先,您需要以这种方式设置事件窗口:

How to set foreground Window from Powershell event subscriber action

获得正确的窗口

接下来,您需要处理 IE 产生至少两个进程的事实。所以你需要捕获正确的窗口。

$h = Get-Process | Where-Object {$_.MainWindowTitle -like "My website*"} | Select-Object -ExpandProperty MainWindowHandle

截图

现在您可以通过以下两种方式之一来截取屏幕截图。
  • 像 JPBlanc 向您展示的那样发送 PrtSc。
    Add-Type -Assembly System.Windows.Forms
    Start-Sleep -seconds 1

    ## Capture the current window
    [System.Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")
  • Take-Screenshot script from PoschCode
  • 关于internet-explorer - 让 powershell 进入 ie 类,并在 ui 测试期间截取 ie 窗口的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708489/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com