0

I have a web page with some content and a button Save. Through my C# code I want to change content of the webpage and then Click Save button. Here is my code.

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

My website does not save anything when clicking save. It does not even navigate to the page where it should after clicking Save button.

I noticed one strange thing. When I remove the first 3 lines to replace text and then change the content manually, everything works fine. Webpage saves content and navigates to proper location.

Any ideas to get a workaround?

4

1 に答える 1

0

最終的に私はそれを手に入れました。自分のやり方が間違っていたことに気づきました。からすべてのテキストを取得し、HTMLその中のテキストを置き換えようとしていました。後で気づいたのですが、テキストは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 に答える