如何在WebBrowser控件中更改下拉框?

4

我有一个列表框需要更改,它看起来像这样:

enter image description here

如何更改七月的值?我需要这个过程是100%自动化的,并将其更改为一月。我在各种网站上创建了很多帐户,现在需要将它们全部更改为相同的出生日期。是的,我知道我必须找到它的ID等。


什么技术?ASP.NET,MVC?什么类型的DD,asp.net,DevExpress,telerik? - P.Brian.Mackey
我的程序是用C#编写的。这就是你想问的吗? - Jon
2
C#是一种编程语言。您将此问题标记为“网站”。像DropDownMenu这样的控件取决于您使用的Web技术类型。我正在寻找的是Web技术。 - P.Brian.Mackey
我不知道...我正在使用一个WebBrowser控件。我取消了网站的标记,我猜这可能会让人感到困惑。 - Jon
看起来像是 WebBrowser 控件 HTMLDocument 自动选择选项下拉菜单 的重复问题,你同意吗? - dbc
显示剩余6条评论
2个回答

8

查看网站的HTML代码,识别下拉列表的idvalues,例如:

<select id="bdayMonthId" size="1" name="bdayMonth">
    <option value="">Month</>
    <option value="Jan">January</>
    <option value="Feb">February</>
    <option value="Mar">March</>
</select>

要在WebBrowser控件中预先选择下拉列表值,请使用以下Winform代码:

webBrowser1.Document.GetElementById("bdayMonthId").SetAttribute("value", "Feb");

0
我对你的问题有点困惑。如果您只是想更改HTML中的一个元素,Jeremy的答案是最好、最简单的方法。如果您想调用文档的JavaScript,那么可以尝试以下代码:
假设Web浏览器的文档包含以下HTML代码:
<html>
    <head>
    <title>Invoke Test</title>
    </head>
    <body>
        <div id="testdiv">Waiting...</div>
        <script>
            function changeDate(date) {
                var x=document.getElementById("testdiv");
                x.innerHTML = date;
            }
        </script>
    </body>
</html>

要调用Web浏览器文档的JavaScript方法,您可以使用类似以下的代码:

private void button1_Click(object sender, EventArgs e)
{
    object o = webBrowser1.Document.InvokeScript("changeDate('june')");
}

不需要 System.Web、ASP、ScriptManagers 或 Interop。所有控制 Web 浏览器和文档对象及事件所需的工具都随附于 WebBrowser 控件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接