`
lsjlym
  • 浏览: 21530 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Selenium 2 (WebDreiver) 代码示例:获取当前装载页面的屏幕快照

 
阅读更多

在使用Selenium进行Web测试时,获取当前装载页面的屏幕快照是有益的。下面以C#为例给出获取屏幕快照的方法。

1、定义实用静态帮助器类和扩展方法

using System;
using OpenQA.Selenium;
using System.Drawing.Imaging;

namespace SeleniumTest
{
public static class SeleniumUtils
{
/// <summary>
/// 以指定的图像格式存储当前加载页面的屏幕快照到指定文件,如果文件已经存在则覆盖此文件
/// </summary>
/// <param name="driver">IWebDriver实例,如FirefoxDriver或InternetExplorerDriver</param>
/// <param name="imageFilePath">保存快照的完整路径和文件名称</param>
/// <param name="imageFormat">保存图像的格式</param>
public static void SaveScreenShot(this IWebDriver driver, string imageFilePath, ImageFormat imageFormat)
{
(driver as ITakesScreenshot).GetScreenshot().SaveAsFile(imageFilePath, imageFormat);
}
}
}


2、使用示例:

// IWebDriver driver = new FirefoxDriver();

// 使用静态方法调用

SeleniumUtils.SaveScreenShot(driver, "C:\\SeleniumTestImages\\YourImageName.jpg", ImageFormat.Jpeg);

// 使用扩展方法调用

driver.SaveScreenShot("C:\\SeleniumTestImages\\YourImageName.jpg", ImageFormat.Jpeg);


注释:

1、帮助器方法的定义方式是灵活的,是否使用也不是必须的

2、一般不需要保存所有测试过程屏幕的快照,仅在Assert断言失败时保存屏幕快照,因此可以

try

{

// 使用测试框架,如NUnit的断言方法,如果失败将抛出异常

Assert.AreEqual(excepted, actual);
}
catch
{
driver.SaveScreenShot("C:\\SeleniumTestImages\\YourImageName.jpg", ImageFormat.Jpeg);
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics