首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium webdriver C# -截取整页屏幕截图

问Selenium webdriver C# -截取整页屏幕截图
EN

Stack Overflow用户
提问于 2012-05-09 13:28:13
回答 10查看 22.9K关注 0票数 6

有没有人可以帮我用Selenium webdriver截取整个页面的截图。我使用的是c#/Nunit。我目前使用的方法不是获取整个浏览器页面。

我使用以下代码来截取屏幕截图。

代码语言:javascript
复制
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();

}
EN

回答 10

Stack Overflow用户

发布于 2012-05-16 04:01:56

“全页”屏幕截图是由WebDriver定义的,包括在浏览器中显示的整个页面,而不是浏览器的chrome (地址栏、工具栏、窗口大小控制柄等)。如果您不关心在屏幕截图中获取完整的DOM,则不需要使用WebDriver来获取屏幕截图。您可以使用您的操作系统的API来处理它。

票数 4
EN

Stack Overflow用户

发布于 2018-10-22 15:27:50

你可以使用这个包https://www.nuget.org/packages/Noksa.WebDriver.ScreenshotsExtensions/

要截取整个页面的屏幕截图,请使用VerticalCombineDecorator:

代码语言:javascript
复制
var vcs = new VerticalCombineDecorator(new ScreenshotMaker());
var screen = _driver.TakeScreenshot(vcs);
票数 4
EN

Stack Overflow用户

发布于 2012-05-12 08:57:57

在进行屏幕截图之前,请尝试将浏览器窗口的大小更改为较大。我的尺码比宽度小10号,比高度小10号。试着做加法而不是减法。

代码语言:javascript
复制
    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);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10510285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档