C# 用C语言控制internetexplorer#
有一个包含输入文本字段的网页 我想启动这个页面C# 用C语言控制internetexplorer#,c#,browser,web-scraping,C#,Browser,Web Scraping,有一个包含输入文本字段的网页 我想启动这个页面 Process.Start("http://nameofdomain.com") 问题是如何在字段中输入数据并提交表单 更新- 我不需要向用户显示/呈现任何页面 其目的是允许用户以最小的努力更改其密码。我们目前的设置是 用户导航到Intranet上的站点(http://intranetsite/password) 要求用户输入其Windows用户名(firstName.lastName) 要求用户输入其当前密码(或回答安全问题,如果存在) 要求用
Process.Start("http://nameofdomain.com")
问题是如何在字段中输入数据并提交表单
更新-
我不需要向用户显示/呈现任何页面
其目的是允许用户以最小的努力更改其密码。我们目前的设置是
您可以查看Web浏览器自动化工具,例如,它们有一个C#驱动程序来与浏览器交互和自动化浏览器。目前为止,最好的方法是WatiN@。我尝试了Selenium,但始终无法让它顺利运行(也许从那以后它变得更好了)。WatiN的文档面向自动化测试,但是您可以不使用测试代码/库,它还支持Firefox和Chrome。例如:
using WatiN.Core;
using WatiN.Core.Interfaces;
using WatiN.Core.Logging;
using WatiN.Core.DialogHandlers;
如果您在windows窗体之类的窗口应用程序中工作,我认为将WebBrowser控件嵌入到应用程序UI中并将其导航到所需的url,会有更好的控制。或者找到一个非常通用的解决方案,考虑调用过程。也可以打开FireFox或Chrome…你真的必须显示页面吗,或者如果发送填写表单的HTTP请求而不实际呈现页面,这可以吗?最好不要启动浏览器窗口,而是创建一个
HTTP POST
请求吗?我们可以,但有点复杂。在本地intranet站点上,f第一个页面要求用户输入用户名。第二个页面要求输入密码(当前)。第三个页面包含需要单击的链接,然后才能提供最终页面(需要输入两次新密码)。我是否需要导入任何类以使用WaitN?不需要。您只需将对WatiN.Core.dll
的引用添加到您的项目中,然后使用我刚才添加到答案中的指令添加。
public void SearchForWatiNOnGoogle()
{
using (var browser = new IE("http://www.google.com"))
{
browser.TextField(Find.ByName("q")).TypeText("WatiN");
browser.Button(Find.ByName("btnG")).Click();
}
}