当前位置:编程学习 > C#/ASP.NET >>

webBrowser里面怎么调用没有ID,Name的按钮点击事件

--------------------编程问答-------------------- 你进入一个误区了,你不是必须通过触发已有控件的单击事件才能满足你的要求的,你可以直接调用上面按钮的js方法就可以了,在webbroswer中有方法可以直接调用js方法 signupBotton 的 --------------------编程问答-------------------- <input type="submit" value="确定" style="font-size:30px;font-weight:bold; width:150px;" />
那这样的按钮怎么办? --------------------编程问答-------------------- 只要你获取了html元素,那么你就可以使用InvokeMember("click")来触发点击事件,实际测试可以触发jq的和asp.net的 --------------------编程问答--------------------
我是新手,是这样的么,但貌似不行
HtmlElement tbsubmit = webBrowser1.Document.All["Submit"]; 
tbsubmit.InvokeMember("click");


网页代码这样的(一部分)
<form method="post" action="?con=signin&act=add" name="theForm" id="theForm">
<input type="submit" value="确定" style="font-size:30px;font-weight:bold; width:150px;" />
</form > --------------------编程问答-------------------- 通过文档结构、className和tagName也可以搜索到具体的 HtmlElement 啊。 --------------------编程问答-------------------- 给举个例子吧。假设你使用webbrowser来显示 http://bbs.csdn.net/forums/DotNET 网页,并且想点击其 “发帖”按钮(它没有id),你可以这样写
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete)
    {
        var top = (from n in this.webBrowser1.Document.GetElementsByTagName("DIV").Cast<HtmlElement>()
                    where n.GetAttribute("className") == "page_nav"
                    select n).First();
        var link = (from n in top.All.Cast<HtmlElement>()
                    where n.TagName == "A" && n.GetAttribute("className") == "btn_1"
                    select n).First();
        link.InvokeMember("click");
    }
}
--------------------编程问答-------------------- 当然也可以写
void Flip_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete)
    {
        var top = (from n in this.webBrowser1.Document.GetElementsByTagName("DIV").Cast<HtmlElement>()
                    where n.GetAttribute("className") == "page_nav"
                    select n).First();
        var link = (from n in top.GetElementsByTagName("A").Cast<HtmlElement>()
                    where n.GetAttribute("className") == "btn_1"
                    select n).First();
        link.InvokeMember("click");
    }
}


或者其他写法也都可以。总之,如果没有id,可以靠任何其他特征来搜索。为了快速,你可以利用任何结构化信息,多写上两行代码,来加速。 --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,