我希望与我的浏览器窗口进行交互可能是IE很好,如果它也适用于Firefox,使用C#。
我想制作一个可以自动填充网页表单中的条目的软件。在过去,gator现在是roboform,它可以自动填充值。
我实际上有一些用户可以在旧的Windows窗体应用程序上工作,所以我想制作一个解决方案,他们仍然可以在他们的Windows应用程序中输入数据,它实际上填写了Web表单中的条目并充当如果请求是从浏览器本身生成的。
我知道我可以合并两个数据库,因为它是一个遗留应用程序为Windows应用程序重新编写数据库是一个麻烦..
有什么建议吗?
答案 0 :(得分:4)
WatiN旨在使用.NET轻松测试Web应用程序,听起来它可能对您想做的事情很方便:
以下是Hello world示例 网络测试自动化;搜索 谷歌。
[Test] public void SearchForWatiNOnGoogle() { using (IE ie = new IE("http://www.google.com")) { ie.TextField(Find.ByName("q")).TypeText("WatiN"); ie.Button(Find.ByName("btnG")).Click(); Assert.IsTrue(ie.ContainsText("WatiN")); } }
WatiN功能列表
- 自动化所有主要HTML元素
- 按多个属性查找元素
- 支持AJAX网站测试
- 支持框架(跨域)和iframe
- 支持弹出对话框,如提醒,确认,登录等。
- 支持HTML对话框(模态和无模式)
- 适用于Internet Explorer 6,7,8和FireFox 2和3
答案 1 :(得分:3)
它被称为测试应用程序,但Selenium RC可用于填写表单,并且相当容易设置。您还可以查看WatiN。不知道您可能会看到哪些安全问题。
答案 2 :(得分:1)
您可能还想查看Selenium这是一个Web应用程序测试框架,您可以通过该程序对Web UI进行编程交互。
答案 3 :(得分:0)
如果您使用fiddler,您可能会看到浏览器发送回服务器的内容,因此您可以编写C#代码以生成相同类型的HTTP request。
如果交互非常复杂(通常使用现代的webapps),您可以按照建议自动化浏览器。
通过使用InternetExplorer.Application对象,我已经成功实现了IE的自动化。它基本上启动了IE的副本,并允许您从代码中控制它。几年前我用这种方式写了一个脚本,在Virgin Trains网站上为我搜索便宜的火车票预订。
问题在于,对于某些IE安装,它有时会停止提供我无法自动跳过的安全警告。似乎没有这种模式。
答案 4 :(得分:0)
如果您的用户只是通过WindForms应用程序使用该应用程序,那么您是否有任何特殊原因必须操纵现有Web浏览器的用户界面(例如Internet Explorer),而不仅仅是自己发出必要的HTTP请求在你的WinForms应用程序?您可以通过将WebRequest属性设置为“POST”并将字段数据写入Stream来使用Method类,您可以使用httpRequest.GetRequestStream()将其写入方法