我正在尝试使用复选框检查Attribute.I尝试使用GeckoHtmlElement
的
GetAttribute()
函数但它总是返回checked
属性的空值。
我试试这个:
Gecko.GeckoElementCollection z = Browser.Document.GetElementsByName("productBox[]");
foreach (Gecko.GeckoNode o in z)
{
if (o.NodeType == NodeType.Element)
{
GeckoHtmlElement asd = (GeckoHtmlElement)o;
string aa =asd.GetAttribute("checked");
if (aa != null && aa == "True")
liaaa.Add(o);
}
}
checkBoxes的Html:
<input name="productBox[]" value="10914" class="noborder" type="checkbox">
我试试这个,但仍然无法正常工作。这将返回Null Gecko节点:
string aa =asd.Attributes["checked"];
更新
我完成了我的工作,但我的方式很糟糕,很脏,而且不太实用。在浏览器中DomMouseUp
事件:
GeckoElement active = (GeckoElement)browser.Document.ActiveElement;
if (active.Attributes["name"].TextContent == "productBox[]")
{
if (getHtmlelement(active).Parent.GetAttribute("style") == null ||
getHtmlelement(active).GetAttribute("style") == "")
{
getHtmlelement(active).SetAttribute("style", "MyCheck");
liaaa.Add(active);
}
else
{
getHtmlelement(active).SetAttribute("style", "");
liaaa.Remove(active);
}
}
它现在正在运行,因为在页面加载时默认情况下不会选中所有复选框。但是更好的方法可以帮助很多。
由于
答案 0 :(得分:1)
string aa =asd.Attributes["checked"];
答案 1 :(得分:0)
转换为GeckoInputElement将允许您访问Checked属性:
if (o.NodeType == NodeType.Element && o is GeckoInputElement)
{
GeckoInputElement asd = (GeckoInputElement)o;
if (asd.Checked)
....
}