使用C#与浏览器交互

时间:2009-07-21 17:08:34

标签: c# windows

我希望与我的浏览器窗口进行交互可能是IE很好,如果它也适用于Firefox,使用C#。

我想制作一个可以自动填充网页表单中的条目的软件。在过去,gator现在是roboform,它可以自动填充值。

我实际上有一些用户可以在旧的Windows窗体应用程序上工作,所以我想制作一个解决方案,他们仍然可以在他们的Windows应用程序中输入数据,它实际上填写了Web表单中的条目并充当如果请求是从浏览器本身生成的。

我知道我可以合并两个数据库,因为它是一个遗留应用程序为Windows应用程序重新编写数据库是一个麻烦..

有什么建议吗?

5 个答案:

答案 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()将其写入方法