使用C#在Selenium中截屏的方法有问题吗

本文关键字:方法 有问题 Selenium 使用 | 更新日期: 2023-09-27 18:05:12

当我试图从测试中调用下面的方法来捕获屏幕截图时,它不会捕获并返回任何屏幕截图。我正在寻找要在bin/debug中捕获的屏幕截图。我相信这些截图根本没有被捕捉到。如果缺少什么东西,有人能帮助确定问题吗?

public void takeScreenshot()
{
    ITakesScreenshot screenshotHandler = driver as ITakesScreenshot;
    Screenshot screenshot = screenshotHandler.GetScreenshot();
    screenshot.SaveAsFile("ScreenShotAT" + DateTime.Now + ".png", System.Drawing.Imaging.ImageFormat.Png);
    screenshot.ToString();
}

使用C#在Selenium中截屏的方法有问题吗

路径的格式不受支持。DateTime.现在返回类似9/1/2016 11:11:11 PM的内容。它需要像一样格式化
dateTime.ToString("MM_dd_yyyy_HH_mm_ss_fff")

如果您需要唯一的文件名,请使用Unix时间戳。它可以由建造

(int) DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds

方法可能看起来像。

public void TakeScreenshot(IWebDriver driver, String filename)
{
   Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();
   screenshot.SaveAsFile(filename, ImageFormat.Png);
}
 public void takeScreenShot()
        {
            string currentDate = DateTime.Now.ToString("ddd, ddMMMyyyy HHmm");
            ITakesScreenshot screenshotHandler = DriverContext.Driver as ITakesScreenshot;
            Screenshot screenshot = screenshotHandler.GetScreenshot();
            string dir = @"C:'Document'";
            screenshot.SaveAsFile(dir + currentDate + fileName + ".png", ImageFormat.Png);
        }

Where dir-保存所有屏幕截图的目录。

在测试过程中,你能看到浏览器窗口吗?在截屏之前,您可能需要最大限度地扩大浏览器窗口。

来自selenium站点的示例代码包含以下片段,这些片段可能会对您有所帮助:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//The below method will save the screen shot in d drive with name "screenshot.png"
FileUtils.copyFile(scrFile, new File("D:''screenshot.png"));

取自此站点

看看这是否有帮助。