我用的方法是:
webBrowser1.Document.All["msgTxt"].InnerText = "终于成功了";//给网页输入框赋值
            foreach (HtmlElement em in webBrowser1.Document.All)//遍历
            {
                if (em.GetAttribute("type") == "button")
                {
                    em.InvokeMember("click");//模拟发表
                }
            }
截图:
但这样的方法在其它微博里都可以,就是QQ的微博不可以,请高手们看看,以下是网页源代码:

<div id="mainWrapper" class="clear">
<div class="main">
<div id="talkBox" class="talkBox">
<h2><a href="http://zhibo.qq.com/mbask/517/index.html"target="_blank" style="color:#889DB6;float:right;margin:1px 8px 0;text-decoration:underline;font-size:12px;font-family:tahoma" onClick="MI.Bos('btnGuideLink')">17:30《兵器知识》主编解读瓦良格号航母性能<span style="font-family:Simsun">   </span></a><em><label for="msgTxt">来,说说你在做什么,想什么</label></em></h2><div class="cntBox"><textarea id="msgTxt" accesskey="u" name="content" autocomplete="off" tabindex="1"></textarea></div>
<div class="funBox">
<div class="insertFun">
<div class="newTopic"><a href="#" class="creatNew" title="汇聚相同热点的广播" tabindex="3">话题</a></div>
<div class="atSome"><span class="ico_at"></span><a class="txt" href="#" title="@朋友帐号就可以提到他" tabindex="3">朋友</a></div>
<div class="insertFace"><span class="ico_face"></span><a class="txt" href="#" title="表情" tabindex="3">表情</a></div>        <div class="newFeel" ><span class="ico_feel"></span><a class="txt" sign="" title="心情" href="#" >心情</a></div>
    <div class="uploadPic"><form target="imageUpload" method="post" enctype="multipart/form-data" class="picForm"><input type="file" name="pic" title="支持jpg、jpeg、gif、png格式,文件小于5M" tabindex="3"/></form><span class="ico_pic"></span><a href="#" class="txt">照片</a></div><div class="uploadVideo"><span class="newVideo"></span><a href="#" class="txt" title="腾讯视频、优酷、土豆、凤凰视频、56可直接播放,也可自己上传" tabindex="3">视频</a></div>
<div class="uploadMusic"><span class="ico_audio"></span><a class="txt" href="#" title="可按歌名、歌手名搜索并添加音乐" tabindex="3">音乐</a></div>
<div class="newVote"><span class="ico_aVote">/span><a class="txt" href="#" title="发起一个投票" tabindex="3">投票</a></div>
<div class="atWen" topic="万能的微博" user="问问" title="有问题,@问问 数亿网友和专家团队为您答疑解惑"><span class="ico_atww"></span><a class="txt" href="#" tabindex="3">提问</a></div>
</div>
<div class="sendFun">
<input type="button" class="sendBtn btnHasStr" value="发送" title="快捷键 Ctrl+Enter" tabindex="2"/><span class="countTxt">还能输入<em>140</em>字</span>
</div>
</div>
</div>高手们请帮帮忙,按照我的方法显示错误,请问怎么模拟发表??

解决方案 »

  1.   

    其它地方用的submit,页面有好几个按钮
      

  2.   

    没关系,指定document对应的Forms[i] submit 一样的。除非这个Button对应还有复杂的js处理。
      

  3.   

    QQ微博有open api不用,非要搞什么“模拟”...纯属无聊找事儿做...
      

  4.   

    是的,又看看这个button后面是用ajax提交的。Submit不行。还得用你的方法。.net 3.0以上
     webBrowser1.Document.All["msgTxt"].InnerText = "测试" + DateTime.Now;
     var inputs = webBrowser1.Document.GetElementsByTagName("input");
     var btnSend = inputs.Cast<HtmlElement>().Where(input => input.GetAttribute("value") == "发送").First();
     btnSend.InvokeMember("click");.net 2.0
    webBrowser1.Document.All["msgTxt"].InnerText = "终于成功了" + DateTime.Now;
    var inputs = webBrowser1.Document.GetElementsByTagName("input");
    foreach (HtmlElement input in inputs)
    {
        if (input.GetAttribute("value") == "发送" &&
            input.GetAttribute("type") == "button")
        {
            input.InvokeMember("click");
        }
    }
    另外,正如vrhero说的,用open api 功能会更强大。
      

  5.   


    谢谢大哥,按照你的方法已经解决了,我这网速不太好,等回家就给分,另外,大哥,你会用C#调用QQ微博的api吗?