按钮有ID最好了,可以用ID取到Elementprivate void Form1_Load(object sender, EventArgs e) { this.wb.Url = new Uri("https://login.yahoo.com/config/login_verify2?.intl=gr&.src=ym"); this.wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); } public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { HtmlDocument doc = wb.Document; HtmlElement goButton= doc.GetElementById("submit"); goButton.InvokeMember("click"); 如果没有ID,可以通过class来取得例如:注意,如果多个element使用同样的class,都会返回。static IEnumerable<HtmlElement> ElementsByClass(HtmlDocument doc, string className) { foreach (HtmlElement e in doc.All) if (e.GetAttribute("className") == className) yield return e; }
for (int i = 0; i < webBrowser1.Document.All.Count; i++) { if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() == "") { webBrowser1.Document.All[i].InvokeMember("click"); break; } }
{
this.wb.Url = new Uri("https://login.yahoo.com/config/login_verify2?.intl=gr&.src=ym");
this.wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument doc = wb.Document;
HtmlElement goButton= doc.GetElementById("submit");
goButton.InvokeMember("click");
如果没有ID,可以通过class来取得例如:注意,如果多个element使用同样的class,都会返回。static IEnumerable<HtmlElement> ElementsByClass(HtmlDocument doc, string className)
{
foreach (HtmlElement e in doc.All)
if (e.GetAttribute("className") == className)
yield return e;
}
{
if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() == "")
{
webBrowser1.Document.All[i].InvokeMember("click");
break;
}
}
IEBrowser ie = new IEBrowser ( this.webBrowser );
// 载入已经放在运行目录的页面 ButtonClick.htm.
ie.Navigate ( Path.Combine ( AppDomain.CurrentDomain.BaseDirectory + "ButtonClick.htm" ) );// 等待 ButtonClick.htm 完全载入.
ie.IEFlow.Wait ( new UrlCondition ( "wait", "ButtonClick.htm", StringCompareMode.EndWith ) );// 模拟具有惟一 id 属性的按钮点击.// 方法1: 执行 javascript 脚本来获取按钮并调用其 click 方法.
ie.ExecuteScript ( "document.getElementById('cmdAdd').click();" );// 方法2: 安装跟踪和 jQuery 脚本后, 执行 jQuery 来模拟点击按钮.
// 安装跟踪脚本.
ie.InstallTrace ( );
// 安装在资源中的 jQuery 脚本.
ie.InstallScript ( Properties.Resources.jquery_1_5_2_min );
// 执行获取按钮并模拟点击的 jQuery 脚本.
ie.ExecuteJQuery ( JQuery.Create ( "'#cmdAdd'" ).Click ( ) );