自动化网站截图

3

我被分配了一个非常糟糕的任务来完成这件事情。

  • 打开网站
  • 截图
  • 填写表单详细信息,点击下一步
  • 截图
  • ...
  • ...
  • ...

反复操作。

现在,通过各种组合,需要进行300次屏幕截图。

并且我必须为4个不同的浏览器Chrome、Firefox、IE 6和IE 7重复此操作。

我不能使用会捕获截图并存储它们的工具,例如SnagIT。 我需要截图,将其复制到Word文档中,并进行第二次截图并将其保存到Word文档中。

我想,我会编写一个小型实用程序来帮助我完成这项工作。 这是我为此提出的需求规范:

  1. 一旦启动,就可以自动隐藏在系统托盘中的可执行文件。
  2. 当它处于活动状态时,所有按键(Print Scrn)的实例都应根据定义(默认路径或用户定义)将内容写入Word文档中。
  3. 定期保存该文档。

现在,我的问题是 - 如果我要使用C#(Winforms应用程序)开发它,我该如何做呢?

我可以做一些C#编程,并愿意学习。但是我无法找到参考资料,了解如何进行后台处理以便在后台运行。而且在运行时,它必须捕获Print Scrn命令。

你们能不能指导我找到正确的材料来学习这个?理论参考就足够了。但是如果有实践参考,那就更好了。

谢谢!


1
这是一个针对 http://stackoverflow.com 的问题。我不确定如何从这里迁移到 SO,所以您可能想在那里重新提出问题。这个问题很可能会被关闭。 - Rei Miyasaka
我认为这篇文章的标题不太合适。 - Bruce McLeod
哦,没关系,有一个投票机制可以将其移动。你应该去在 Stack Overflow 上注册一个账户。 - Rei Miyasaka
4个回答

3

WatiN有截图功能并且可以在Firefox中使用。然而,Selenium可能更适合,因为它支持更多的浏览器。

但是我建议如果可以的话,利用像browsershots.org这样的工具来获取屏幕截图。


2

最近在这个问题中有人提到,你可以尝试使用AutoIt。它不是基于浏览器的,但没有理由要求它必须是,而且所有繁重的工作已经为您完成。


1

0

你可以使用Cucumber和Capybara来完成这个任务,但是Cucumber的方式更加简单。首先,在你的项目文件下创建两个文件夹:(1) failed_png 和 (2) success_png。然后,在你的env.rb文件中粘贴以下代码:

After do |scenario|
  take_screenshot(@browser, scenario)
end

def take_screenshot(browser, scenario)
  if scenario.failed?
    scenario_name = scenario.name.gsub /[^\w\-]/, ' '
    time = Time.now.strftime("%Y-%m-%d %H%M")
    screenshot_path = './failed_png/' + time + ' - ' + scenario_name + '.png'
  else
    scenario_name = scenario.name.gsub /[^\w\-]/, ' '
    time = Time.now.strftime("%Y-%m-%d %H%M")
    screenshot_path = './success_png/' + time + ' - ' + scenario_name + '.png'
  end
  browser.save_screenshot(screenshot_path)
end

这个程序会在每个场景结束后截取屏幕并将其放置在SUCCESS文件夹或FAILED文件夹中,并带有时间戳。

如需完整的env.rb文件和更多文档,请访问我的博客whitneytaylorimura.wordpress.com。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接