C# 没有id和名称的GetElementById如何?

C# 没有id和名称的GetElementById如何?,c#,browser,C#,Browser,我需要在新的wordpress表单中点击“添加”按钮,这个按钮是为了给帖子添加标签,问题是按钮没有值和id属性。就是这样 按钮的html input type="button" class="button tagadd" value="Add" tabindex="3" 我的尝试 webBrowser1.Document.GetElementById("button tagadd").InvokeMember("click"); webBrowser1.Document.GetElement

我需要在新的wordpress表单中点击“添加”按钮,这个按钮是为了给帖子添加标签,问题是按钮没有值和id属性。就是这样

按钮的html

input type="button" class="button tagadd" value="Add" tabindex="3"
我的尝试

webBrowser1.Document.GetElementById("button tagadd").InvokeMember("click");

webBrowser1.Document.GetElementById("Add").InvokeMember("click");
“没有id的GetElementById”

:-)

除非您可以更改按钮的标记

input type="button" class="button tagadd" value="Add" tabindex="3"
现在需要遍历整个DOM,并在已知位置查找按钮。我建议添加jquery(如果还不存在的话),以便能够更轻松地进行dom操作/搜索

如果添加jquery,可以执行类似于
$(“.tagadd”)的操作。单击()

“没有id的GetElementById”

:-)

除非您可以更改按钮的标记

input type="button" class="button tagadd" value="Add" tabindex="3"
现在需要遍历整个DOM,并在已知位置查找按钮。我建议添加jquery(如果还不存在的话),以便能够更轻松地进行dom操作/搜索

如果添加jquery,您可以执行类似于
$(“.tagadd”)的操作。单击()

您可以尝试这样做

webBrowser1.document.getElementsByClassName("tagadd")
编辑:下面是一个脚本,用于在getElementsByClassName函数不可用时创建该函数

还有这个,但我从未用过。

你可以试试

webBrowser1.document.getElementsByClassName("tagadd")
编辑:下面是一个脚本,用于在getElementsByClassName函数不可用时创建该函数

还有这个,但我从未使用过。

  • 添加一个ID。即使您正在动态生成按钮,这也应该是微不足道的

  • 如果您使用的是jQuery

    $('.tagadd')

将返回应用了
tagadd
类的所有内容的集合。您可以通过其他类(
按钮
等)对此进行进一步筛选

  • 使用以下命令:

    onload=函数(){ if(document.getElementsByClassName==未定义){ document.getElementsByClassName=函数(类名) { var hasClassName=newregexp(“(?:^ |\s)”+className+”(?:$|\s)”); var-allegements=document.getElementsByTagName(“*”); var结果=[]

        var element;
        for (var i = 0; (element = allElements[i]) != null; i++) {
            var elementClass = element.className;
            if (elementClass 
    
    &&elementClass.indexOf(className)!=-1 &&hasClassName.test(elementClass)) 结果:推(元素); }

        return results;
    }
    
    } }

  •     return results;
    }
    
还有一个

  • 一些浏览器提供了方法
    getElementsByClassName()
    ,它允许您在不使用jQuery的情况下按类进行选择(如果这是您所需要的,那么jQuery会有点重)。我还没有测试过这个,所以我不确定它的支持范围有多广

  • 我有没有说过你应该给所有的东西都加上身份证

    • 添加一个ID。即使您正在动态生成按钮,这也应该是微不足道的

    • 如果您使用的是jQuery

      $('.tagadd')

    将返回应用了
    tagadd
    类的所有内容的集合。您可以通过其他类(
    按钮
    等)对此进行进一步筛选

    • 使用以下命令:

      onload=函数(){ if(document.getElementsByClassName==未定义){ document.getElementsByClassName=函数(类名) { var hasClassName=newregexp(“(?:^ |\s)”+className+”(?:$|\s)”); var-allegements=document.getElementsByTagName(“*”); var结果=[]

          var element;
          for (var i = 0; (element = allElements[i]) != null; i++) {
              var elementClass = element.className;
              if (elementClass 
      
      &&elementClass.indexOf(className)!=-1 &&hasClassName.test(elementClass)) 结果:推(元素); }

          return results;
      }
      
      } }

    •     return results;
      }
      
    还有一个

  • 一些浏览器提供了方法
    getElementsByClassName()
    ,它允许您在不使用jQuery的情况下按类进行选择(如果这是您所需要的,那么jQuery会有点重)。我还没有测试过这个,所以我不确定它的支持范围有多广

  • 我有没有说过你应该给所有的东西都加上身份证


  • 例如,使用标记名ISTED

    var elems = webBrowser1.Document.GetElementsByTagName("input");
            foreach (HtmlElement elem in elems)
            {
                if (elem.GetAttribute("class") == "button tagadd")
                {
                    elem.InvokeMember("click");
                }
            }
    

    例如,使用标记名ISTED

    var elems = webBrowser1.Document.GetElementsByTagName("input");
            foreach (HtmlElement elem in elems)
            {
                if (elem.GetAttribute("class") == "button tagadd")
                {
                    elem.InvokeMember("click");
                }
            }
    


    您不能将
    id
    属性添加到按钮中吗?我该怎么做?我正在使用webbrowser控件,所以HTML不在您的控制范围内?对不起,我不明白。我使用WebBrowser控件打开wordpress博客,进入新的后期页面,然后设置标题、内容和标签,但要添加标签,我必须单击添加小按钮,没有id和名称。啊哈。。。你的问题缺少了一点背景知识。编辑你的问题并添加它怎么样?你不能在按钮上添加
    id
    属性吗?我怎么做?我正在使用webbrowser控件,所以HTML不在您的控制范围内?对不起,我不明白。我使用WebBrowser控件打开wordpress博客,进入新的后期页面,然后设置标题、内容和标签,但要添加标签,我必须单击添加小按钮,没有id和名称。啊哈。。。你的问题缺少了一点背景知识。编辑您的问题并添加它怎么样?不起作用,它会给我错误“对象引用未设置为对象的实例”@robert在这种情况下,可能是因为
    webBrowser1
    可能没有定义。尝试只使用
    document.getElementsByClassName()
    。你有安装Firebug或IE调试工具吗?我没有得到getElementsByClassName,我必须添加一些东西,比如使用一些东西;我不认为所有内容都支持GetElementsByCassName,我更新了答案,添加了一个可以生成函数的链接。如果不工作,则会出现错误“对象引用未设置为对象的实例”@robert在这种情况下,可能是因为
    webBrowser1
    可能没有定义。尝试只使用
    document.getElementsByClassName()
    。你有安装Firebug或IE调试工具吗?我没有得到getElementsByClassName,我必须添加一些东西,比如使用一些东西;我不认为所有东西都支持GetElementsByCassName,我更新了答案,添加了一个可以生成函数的链接。