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的优点是它直接向浏览器请求捕获,因此即使浏览器窗口隐藏在另一个窗口后面或根本没有屏幕上下文(例如,在TFS或Jenkins等测试用例运行器平台上),您也会得到正确的结果。
在screenCapture.SaveAsFile()
中,可以指定不同的图像文件格式。我正在使用Jpeg,质量对我来说已经足够好了。如果你想要无损质量,请尝试Bmp格式。