【问题标题】:Selenium C#: Taking a picture of a active screen instead of whole web pageSelenium C#:拍摄活动屏幕而不是整个网页的照片
【发布时间】:2016-01-12 15:37:07
【问题描述】:

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

(可选)另外,我将其保存为 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。由于图片太大,我创建了一个 URL 来查看该图片。

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

【问题讨论】:

    标签: c# selenium screenshot


    【解决方案1】:

    根据执行测试用例的上下文,浏览器窗口可能不可见,因此无法通过常规屏幕捕获来捕获。 Selenium 的优点是它直接向浏览器请求捕获,因此即使浏览器窗口隐藏在另一个窗口后面或根本没有屏幕上下文(例如在某些测试用例运行平台上,如 TFS 或詹金斯)。

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

    【讨论】:

    • 我明白了,但不是捕获整个页面,应该有一些方法可以只为屏幕上可用的部分获取图像。 请在实际和预期结果下查看我的图片
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2012-06-11
    相关资源
    最近更新 更多