Selenium C#:拍摄活动屏幕而非整个网页

时间:2016-01-12 15:37:08

标签: c# selenium screenshot

我正在尝试在自动化项目中进行扫描。我想知道的是,任何方式都可以截取您在浏览器上看到的活动屏幕截图,而不是整个网页。

(可选)此外,我将其保存为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);


        }
    }

实际结果: 点击View。由于Image太大,我创建了一个URL来查看该图像。

预期结果:点击View。这是您浏览器上的活动屏幕。

1 个答案:

答案 0 :(得分:0)

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

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