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

Надеюсь, это поможет.

Смежные вопросы