title: Are there any good examples of how to take a screenshot in selenium webdriver C#, then crop and save the image?
body: <p>I've been searching for some good examples of how to take a screenshot using ITakesScreenshot in Selenium Webdriver in C#, then to crop the image using the elements dimensions and then saving this new image. With no such luck have I found any in C#.</p>
  
  <p>I have this method at the moment but every so often I get a Out of Memory exception when used in a test. It fails on the line where it tries to crop.</p>
  
  <pre><code>public void TakeScreenShotOfElement(IWebDriver _driver, string rootpath, string imgName, string element2)
      {
  
              string element3 = element2;
              var element = driver.FindElement(By.XPath(element3));
              Byte[] ba = ((ITakesScreenshot)driver).GetScreenshot().AsByteArray;
              var ss = new Bitmap(new MemoryStream(ba));
  
              var crop = new Rectangle(element.Location.X, element.Location.Y, element.Size.Width, element.Size.Height);
  
              //create a new image by cropping the original screenshot
              Bitmap image2 = ss.Clone(crop, ss.PixelFormat);
  
  
              if (!Directory.Exists(rootpath))
              {
                  Directory.CreateDirectory(rootpath);
              }
              image2.Save(String.Format("{0}\\{1}.png", rootpath, imgName), System.Drawing.Imaging.ImageFormat.Png);
  
      }
  </code></pre>
  
  <p>Any help is much appreciated, thanks in advance!!!</p>