我有一个包含一些内容的网页和一个按钮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行替换文本然后手动更改内容时,一切正常。网页可以保存内容并导航到正确的位置。
有任何想法可以获得解决方法吗?
答案 0 :(得分: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;
}
}
}
希望它有所帮助。