有没有人可以帮我用Selenium webdriver截取整个页面的截图。我使用的是c#/Nunit。我目前使用的方法不是获取整个浏览器页面。
我使用以下代码来截取屏幕截图。
public void TakeScreenShot(IWebDriver webDriver,string testName,string className)
{
string folderName = String.Format("{0}.{1}", className, testName);
// Create Screenshot folder
string createdFolderLocation = CreateFolder(folderName);
// Take the screenshot
Screenshot ss = ((ITakesScreenshot)webDriver).GetScreenshot();
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
// Save the screenshot
ss.SaveAsFile((string.Format("{0}\\{1}",createdFolderLocation,testName + ".Jpeg")), System.Drawing.Imaging.ImageFormat.Jpeg);
ss.ToString();
}发布于 2012-05-16 04:01:56
“全页”屏幕截图是由WebDriver定义的,包括在浏览器中显示的整个页面,而不是浏览器的chrome (地址栏、工具栏、窗口大小控制柄等)。如果您不关心在屏幕截图中获取完整的DOM,则不需要使用WebDriver来获取屏幕截图。您可以使用您的操作系统的API来处理它。
发布于 2018-10-22 15:27:50
你可以使用这个包https://www.nuget.org/packages/Noksa.WebDriver.ScreenshotsExtensions/
要截取整个页面的屏幕截图,请使用VerticalCombineDecorator:
var vcs = new VerticalCombineDecorator(new ScreenshotMaker());
var screen = _driver.TakeScreenshot(vcs);发布于 2012-05-12 08:57:57
在进行屏幕截图之前,请尝试将浏览器窗口的大小更改为较大。我的尺码比宽度小10号,比高度小10号。试着做加法而不是减法。
driver = new FirefoxDriver(firefoxProfile);
if (Config.MAXIMIZE_BROWSER_WINDOW)
{
driver.Manage().Window.Size = new System.Drawing.Size(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - 10, System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 10);
}https://stackoverflow.com/questions/10510285
复制相似问题