Selenium C#:拍摄活动屏幕的图片,而不是整个网页

本文关键字:网页 活动 屏幕 Selenium | 更新日期: 2023-09-27 18:29:55

我正试图在我的自动化项目中使用screnshot。我想知道的是,任何方式都可以截图你在浏览器上看到的活动屏幕,而不是整个网页。

(可选)此外,我将其保存为png格式,但图像质量较低。有什么方法可以以高质量捕获吗?

下面是我的屏幕截图代码

 class Result
    {
        public static void screenshot() 
        {
            ITakesScreenshot screenshotDriver = PropertiesCollection.driver as ITakesScreenshot;
            Screenshot screenCapture = screenshotDriver.GetScreenshot();
            string path = @"..'..'Results'";
            string timestamp = DateTime.Now.ToString("yy-MM-dd hh-mm-ss");
            screenCapture.SaveAsFile(@path + i + ". " + timestamp + ".png", System.Drawing.Imaging.ImageFormat.Png);

        }
    }

实际结果:单击以查看。由于图片太大,我创建了一个URL来查看该图片。

预期结果:单击以查看。这是浏览器上的活动屏幕。

Selenium C#:拍摄活动屏幕的图片,而不是整个网页

根据执行测试用例的上下文,浏览器窗口可能不可见,因此无法通过常规屏幕捕获进行捕获。Selenium的优点是它直接向浏览器请求捕获,因此即使浏览器窗口隐藏在另一个窗口后面或根本没有屏幕上下文(例如,在TFS或Jenkins等测试用例运行器平台上),您也会得到正确的结果。

screenCapture.SaveAsFile()中,可以指定不同的图像文件格式。我正在使用Jpeg,质量对我来说已经足够好了。如果你想要无损质量,请尝试Bmp格式。