使用支持 WCF 的注入式组件自动化 Web 应用程序操作






2.65/5 (15投票s)
2006年1月6日
3分钟阅读

75558

915
本文演示了使用 WWF 自定义活动来模拟用户操作,填充网页输入字段并提交页面。
引言
在圣诞假期期间,我第一次阅读了 Microsoft Windows Workflow Foundation (WWF),意识到我在学习这项新技术方面为时已晚。“迟做总比不做好” - 所以我决定亲自尝试一下这个框架。WWF 是 Microsoft 提供的一个可扩展框架,用于实现基于工作流的解决方案。简单来说,工作流是活动的集合。要了解更多关于 WWF 的信息,请访问 MSDN 网站。
我们每个人每天至少打开一次网页浏览器,在 Google 中进行搜索,打开我们的电子邮件帐户来查看电子邮件等等。这是一个人类工作流的例子,在本文中,我将展示如何在 WWF 中表达这个工作流。
定义的活动
为了进行 Google 搜索,必须执行以下活动
- 打开浏览器。
- 导航到 Google 网站。
- 输入搜索文本。
- 按下搜索按钮。
为了在 Hotmail 帐户中查看电子邮件,必须执行以下活动
- 打开浏览器。
- 输入用户名。
- 输入密码。
- 按下登录按钮。
在上述场景中,我们正在填写网页中的表单并提交它。为了完成这个工作流,我进行了一个非常小的抽象,并提出了以下三个活动
- VisitPage - 打开浏览器并导航到指定的网站。
- InputData - 使用指定的值填充网页上的输入控件(支持文本框、文本区域、单选按钮、复选框、下拉列表)。
- Click - 通过按下指定的按钮提交表单。
自定义活动
Microsoft 通过提供 Visual Studio® 2005 Extensions for WWF,使 WWF 应用程序开发变得非常容易。一个单独的项目模板可用于开发活动库。要实现自定义活动,我们只需从 Activity
类派生并覆盖 Execute
方法。
public class MyActivity : Activity
{
protected override Status
Execute(ActivityExecutionContext context)
{
.
.
}
}
我为 VisitPage、InputData 和 Click 活动添加了额外的属性。有关详细信息,请参见附加的代码。
定义工作流
Visual Studio 具有完整的设计器支持来建模工作流,甚至允许我们在设计器本身中定义断点进行调试。工作流也可以用 XML 格式定义(XOML - XML 工作流标记)。图 1 是设计器视图中的 Hotmail 帐户登录工作流,图 2 是文本视图中的 Google 搜索工作流。
图 4 - Hotmail 登录
图 5 - Google 搜索
范围
现在有很多自动化的网络填写系统可用于各种服务。我相信它们是很难开发、维护和培训新人的专有解决方案。现在,我们从 Microsoft 获得了一个非常好的通用、可扩展的框架,以及一套完整的开发工具来开发基于工作流的解决方案。有了设计器支持,即使是业务分析师也可以在没有任何开发人员帮助的情况下完成工作流。我坚信,使用 WWF 重新设计网络填写系统将带来真正的投资回报。
开发者信息
示例应用程序是使用 Microsoft Pre-Release Software WinFX Runtime Components - December Community Technology Preview (CTP) 开发的。Microsoft internet 控件用于 IE 浏览器的功能。