2013-03-04 205 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; 
     } 
    } 
} 

希望它有幫助。