0

我有一个包含一些内容和一个按钮的网页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 行以替换文本然后手动更改内容时,一切正常。网页保存内容并导航到适当的位置。

有什么想法可以解决吗?

4

1 回答 1

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;
        }
    }
}

希望能帮助到你。

于 2013-03-07T13:35:52.833 回答