更改网页内容

时间:2013-03-04 09:49:35

标签: c# browser webpage dom

我有一个包含一些内容的网页和一个按钮Save。通过我的C#代码,我想更改网页的内容,然后单击“保存”按钮。这是我的代码。

string replace = webBrowser1.DocumentText.Replace("2013.0.0.1", "2013.0.0.2");
webBrowser1.DocumentText = replace;

links = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement link in links)
{
    if ((link.GetAttribute("Name") == "Save"))
    {
        if (link.GetAttribute("type").Equals("submit"))
        {
            link.InvokeMember("click");
            break;
        }
    }
}

单击“保存”时,我的网站不保存任何内容。单击“保存”按钮后,它甚至无法导航到应该显示的页面。

我注意到一件奇怪的事。当我删除前3行替换文本然后手动更改内容时,一切正常。网页可以保存内容并导航到正确的位置。

有任何想法可以获得解决方法吗?

1 个答案:

答案 0 :(得分:0)

最终我明白了。我意识到我的方法不正确。我从HTML获取了所有文本,然后尝试替换其中的文本。后来我注意到文本出现在textarea中。所以我获取了textarea的文本,然后替换了文本。然后点击Save工作正常。这是我的代码:

HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("A");

links = webBrowser1.Document.GetElementsByTagName("textarea");
foreach (HtmlElement link in links)
{
    if ((link.GetAttribute("Name") == "text"))
    {
        string attribute = link.InnerText;
        string replace = attribute.Replace(@"Hello World", @"Helo World!!!");
        link.InnerText = replace;
        break;
    }
}

links = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement link in links)
{
    if ((link.GetAttribute("Name") == "Save"))
    {
        if (link.GetAttribute("type").Equals("submit"))
        {
            link.InvokeMember("click");
            break;
        }
    }
}

希望它有所帮助。