打开浏览器并填写一些数据

时间:2011-05-12 15:26:40

标签: c# internet-explorer

我想知道如何打开浏览器到特定网页,然后填写该页面上的一些框内容。

我的想法是让某人能够从我们的内部订购系统订购特定商品。这些项目的条形码将填充我想要打开的页面上的字段。

我不能打开一个新的实例,即使用Process.Start("IEXPLORE.EXE", url);如何获得那个确切的实例窗口的句柄,以便我可以开始将所需的数据添加到字段中?

这甚至可能吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

WatiN应该对此有所帮助。我一般用它来进行网络应用程序的验收测试,但原理是一样的。打开浏览器实例,引用DOM中的内容,操作表单元素等。

答案 1 :(得分:1)

除了WatiN(如另一个答案中所建议的),您可以考虑使用Web Performance Load Tester之类的负载测试包。它们有一个免费版本,允许您一次最多运行10个虚拟用户,这将执行脚本操作。

另一种选择是使用标准的WebBrowser对象来加载您的网站。 WebBrowser对象允许您访问和更改某些Web部件。以下是自动搜索Bing的示例代码:

private void LoadPage()
{
    WebBrowser webBrowser1 = new WebBrowser();

    webBrowser1.Navigate("http://www.bing.com");

    //Wait for document to load...
    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    {
        Application.DoEvents();
    }

    //Set the text of the search input
    HtmlElement txtTextField = webBrowser1.Document.GetElementById("sb_form_q");
    txtTextField.InnerText = "My test text";

    //Perform a click on the search button
    HtmlElement btnSubmit = webBrowser1.Document.GetElementById("sb_form_go");
    btnSubmit.InvokeMember("click");

}