C# 没有id和名称的GetElementById如何?
我需要在新的wordpress表单中点击“添加”按钮,这个按钮是为了给帖子添加标签,问题是按钮没有值和id属性。就是这样 按钮的htmlC# 没有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
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,我更新了答案,添加了一个可以生成函数的链接。