reallmy2 2014-12-19 01:33 采纳率: 100%
浏览 3515
已采纳

c#使用iframe嵌套问题

小弟想用WebBrowser控件来操作QQ空间的留言板,完成自动留言并点击提交按钮,目前提交按钮功能已经实现,但是往留言板中写文字还没有实现,哪位大神帮帮忙,我的代码如下

if (!webBrowser1.IsBusy)//判断有没有加载新的文档
{
HtmlElement html_input1 = webBrowser1.Document.Window.Frames["tgb"].Document.All["veditor1_Iframe"];
html_input1.SetAttribute("value", "google");//这步不好使
HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//获取到iframe id为tgb下面的button
searchButton.InvokeMember("click");//这步好使

我发现veditor1_Iframe也是一个iframe的id,也就是iframe“tgb”里面又有一个iframe“veditro1_Iframe”,并且里面没有找到输入框的id,请问这时怎么去寻找这个输入框并给它赋值呢??

  • 写回答

1条回答 默认 最新

  • save4me 2014-12-19 03:05
    关注

    使用下面的代码
    我在网上随便搜了一个qq空间的地址(http://410159784.qzone.qq.com/),这个空间的iframe的id和你的不一样(后面注释掉的那两个id),所以我id定义成了变量,方便修改。另外把操作放在了try里面,这样就算没有找到也不会导致程序奔溃。你可以自己修改一下。
    还有需要注意的是webBrowser1.IsBusy这个判断可能不能准确判断嵌套的iframe页面是否加载完成。

                if (!webBrowser1.IsBusy)//判断有没有加载新的文档
                {
                    string frameBlog = "tgb";//"tblog";
                    string frameEdit = "veditor1_Iframe";
                    string btnPost = "btnPostMsg";//"submitCommentBtn";
    
                    try {
                        HtmlElement html_input1 = webBrowser1.Document.Window.Frames[frameBlog].Document.Window.Frames[frameEdit].Document.Body;
                        if (html_input1 != null) {
                            html_input1.InnerHtml = "Google";
                            HtmlElement searchButton = webBrowser1.Document.Window.Frames[frameBlog].Document.GetElementById(btnPost);
                            if (searchButton != null) {
                                searchButton.InvokeMember("click");
                            }
                        }
    
                    } catch (Exception) {
                        //throw;
                    }
                }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况