2013-03-04 442 views
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行来替换文本,然后手动更改内容时,一切正常。网页保存内容并导航到适当的位置。

任何想法得到解决办法?

+1

“不起作用”是非常无用的。它如何“不起作用”? – Default 2013-03-04 12:12:40

+0

我想我的整个句子都是'上面的代码不起作用,我的网站不保存任何点击保存。甚至在单击“保存”按钮后,甚至不会导航到它应该在的页面。“.....这是它不起作用的方式。请让我知道,如果你正在寻找一些我缺少的信息 – Sandy 2013-03-04 13:51:13

+0

我冒昧地清理你的陈述。我删除了冗余部分并添加了一些换行符。对我来说,这更清楚。 – Default 2013-03-04 13:56:29

回答

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

希望它有帮助。