2013-03-04 2 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

+0

내 전체 문장은'로 간다. 그리고 위의 코드는 작동하지 않으며 내 웹 사이트는 저장을 클릭해도 아무 것도 저장하지 않습니다. 저장 버튼을 클릭 한 후 페이지로 이동하지 않아도됩니다. '..... 이것이 작동하지 않는 방식입니다. 제가 누락 된 정보를 찾고 계시다면 알려주십시오. – Sandy

+0

진술서를 정리하기 위해 자유를 택했습니다. 여분의 부품을 제거하고 줄 바꿈을 추가했습니다. 저에게, 그것은 더 명확하게 읽습니다. – Default

답변

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

희망이 있습니다.