使用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();
}
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"));
取自此站点
看看这是否有帮助。