【问题标题】:Unchecking an HTML checkbox using code使用代码取消选中 HTML 复选框
【发布时间】:2012-10-09 11:21:56
【问题描述】:

我正在制作一个机器人,它有一个可以加载一些页面的 WebBrowser 控件。我希望我的机器人取消选中一个复选框。现在我正在使用这个代码:

HtmlElementCollection elc = this.BotBrowser.Document.GetElementsByTagName("input");
foreach (HtmlElement el in elc)
{
    if (el.GetAttribute("value").Equals("Leishmania mexicana")) //to uncheck Leishmania mexicana checkbox
    {
        el.InvokeMember("click");

    }
}

但这似乎并不完美,因为它有时会重新选中复选框,因为该机器人必须加载页面并执行任务超过 100 次。

这里是复选框的 HTML 标签:

<input type="checkbox" class="jstree-real-checkbox" id="array(BlastDatabaseOrganism)" name="array(BlastDatabaseOrganism)" value="Leishmania mexicana" checked="checked">

有什么方法可以删除此属性或将其 checked 属性设置为 null?

【问题讨论】:

    标签: c# html checkbox webbrowser-control


    【解决方案1】:

    首先将 mshtml(com 选项卡下的 Microsoft Html 对象库)命名空间导入您的项目。然后用这个

        using mshtml;
    
    
    HtmlElementCollection elc = this.BotBrowser.Document.GetElementsByTagName("input");
    foreach (HtmlElement el in elc)
    {
          if (el.GetAttribute("value").Equals("Leishmania mexicana")) //to uncheck Leishmania mexicana checkbox
                        {
                                HTMLInputElement elm = el.DomElement as HTMLInputElement;
                              elm.@checked = false;
    
                        }
    }
    

    【讨论】:

    • 据我所知它只是一个属性
    • 嗯,它确实看起来像一个属性,是否有任何具体的名称或任何链接(如 msdn)进一步描述它,我将对此表示感谢
    【解决方案2】:

    试试这个

    el.SetAttribute("checked", null);
    

    【讨论】:

    • 谢谢!比InvokeMember("click") 好多了
    猜你喜欢
    • 2022-10-15
    • 2015-11-11
    • 2021-06-22
    • 2011-02-27
    • 1970-01-01
    • 2020-01-14
    • 2013-11-19
    • 2012-01-02
    • 2014-07-30
    相关资源
    最近更新 更多