c# - 以编程方式从 .NET Webbrowser Control 的下拉列表中选择一个项目

标签 c# javascript html .net

下面是一个 html 脚本,我从一个网站上抓取的。我想使用 .NET 以编程方式选择项目

<div id="MySite.condition_s-wrp" class="c-wrp-slctbx" style="z-index: 1;">
    <input id="MySite.condition_s-input" type="text" autocomplete="off" readonly="readonly" tabindex="0" class=" c-slctbx-medium" style="width: 268px;">
    <ul class="c-ul-slctbx max_height_300" style="width: 285px; display: none; top: 21px;">
        <li id="MySite.condition_s-option-" class="c-li-slctbx">Please choose</li>
        <li id="MySite.condition_s-option-First" class="c-li-slctbx">First</li>
        <li id="MySite.condition_s-option-Second" class="c-li-slctbx">Second</li>
    </ul>
    <select id="MySite.condition_s" name="attributeMap[MySite.condition_s]" class=" c-slctbx-medium" style="display: none;">
        <option value="">Please choose</option>
        <option value="First">First</option>
        <option value="Second">Second</option>
        </select>
</div>

请注意以下代码根本不起作用。

webBrowser1.Document.GetElementById("MySite.condition_s").SetAttribute("value", "First");

任何快速帮助将不胜感激。

最佳答案

最后我和我的一个 friend 弄明白了。这个小函数会很容易地完成剩下的工作。

感谢 Farrukh Momin 和他的时间。

    public void SetComboItem(string id, string value) {
        HtmlElement ee = this.webBrowser1.Document.GetElementById(id);
        foreach (HtmlElement item in ee.Children) {
            if (item.OuterHtml.ToLower().IndexOf(value.ToLower()) >= 0) {
                item.SetAttribute("selected", "selected");
                item.InvokeMember("onChange");
            }
            else {
                item.SetAttribute("selected", "");
            }
        }

        ee = this.webBrowser1.Document.GetElementById(id + "-input");
        ee.InnerText = value;
    }

调用函数

    this.SetComboItem("MySite.condition_s", "First");

关于c# - 以编程方式从 .NET Webbrowser Control 的下拉列表中选择一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265539/

相关文章:

javascript - 无需打开网页即可访问网页的 DOM 元素

javascript - 嵌套的 HTML 表格显示不正确

javascript - 可以使用 jquery 根据其 div 类跳到页面的特定部分吗?

c# - 可被 X 整除的下一个最接近的数

c# - 动态识别控件的容器(GroupBox 等)

javascript - 性能:大表格鼠标悬停效果

jquery - jQuery 中的 HTML 元素和 jQuery 中的 CSS 样式

c# - 从异步方法设置 ViewModel UI 属性

c# - 在 C# 中有没有办法查看通过 ASPX 页面生成的代码?

javascript - 更改使用时放置的 svg 矩形描边