0

我希望我的应用程序更改站点上下拉列表的值。这是网站上的下拉列表的代码:

<select name="filterPPage">
    <option value="20"></option>
    <option value="30"></option><option value="40"></option>
    <option value="50"></option><option value="60"></option>
    <option value="70"></option><option value="80"></option>
    <option value="90"></option><option value="100"></option>
</select>

我在我的应用程序中使用此代码来更改值:

int buff = 100;

foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("select"))
{
    if (he.GetAttribute("name").Equals("filterPPage"))
    {
        he.SetAttribute("value", buff.ToString());
    }
}

但是它只在一秒钟内将值更改为 100,然后页面刷新,默认值变为 20。请帮忙。

4

1 回答 1

0

您必须遍历select tag孩子:

试试这个:

        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            foreach (HtmlElement selecttag in webBrowser1.Document.GetElementsByTagName("select"))
            {
                if (selecttag.GetAttribute("name").Equals("filterPPage"))
                {
                    foreach (HtmlElement child in selecttag.All)
                    {
                        child .InnerText = "something";
                    }

                }
            }
        }

已编辑

完整代码:

private void Form1_Load_1(object sender, EventArgs e)
        {
            webBrowser1.DocumentText = File.ReadAllText(@"E:\\file.html");
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        }

        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

            foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("select"))
            {
                if (he.GetAttribute("name").Equals("filterPPage"))
                {
                    foreach (HtmlElement el in he.All)
                    {
                        el.InnerText = "1==";
                    }

                }
            }
        }
于 2013-04-11T08:08:25.360 回答