C# 填写VBulliten专用消息的文本
我试图通过C#在网络论坛上提交一条私人消息。 除了消息框本身,我可以填写每个组件: nk 设置textarea的innertext元素的常用方法根本不起作用,它适用于页面的其余部分,但不适用于此??我不知道为什么,我可以确认代码正确识别了这个区域。 我只能想象其他东西真正控制了显示和提交值。 我发现: 当我将该值设置为除0以外的任何值时,消息将发布,但每次都会丢失文本C# 填写VBulliten专用消息的文本,c#,browser,submit,C#,Browser,Submit,我试图通过C#在网络论坛上提交一条私人消息。 除了消息框本身,我可以填写每个组件: nk 设置textarea的innertext元素的常用方法根本不起作用,它适用于页面的其余部分,但不适用于此??我不知道为什么,我可以确认代码正确识别了这个区域。 我只能想象其他东西真正控制了显示和提交值。 我发现: 当我将该值设置为除0以外的任何值时,消息将发布,但每次都会丢失文本 有什么想法吗?我不知道您最喜欢的访问网页的方法是什么,但您可以创建一个虚拟WebBrowser表单,然后使用类似的函数:
有什么想法吗?我不知道您最喜欢的访问网页的方法是什么,但您可以创建一个虚拟WebBrowser表单,然后使用类似的函数:
void SetText(string attribute, string attName, string value)
{
HtmlElementCollection tagsCollection = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement currentTag in tagsCollection)
{
if (currentTag.GetAttribute(attribute).Equals(attName))
currentTag.SetAttribute("value", value);
}
}
void CheckBox(string attribute, string attName, string value)
{
// Get a collection of all the tags with name "input";
HtmlElementCollection tagsCollection = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement currentTag in tagsCollection)
{
if (currentTag.GetAttribute(attribute).Equals(attName))
currentTag.SetAttribute("checked", value);
}
}
void ClickButton(string attribute, string attName)
{
webBrowser1.Document.GetElementsByTagName("input");
HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("button");
foreach (HtmlElement element in col)
{
if (element.GetAttribute(attribute).Equals(attName))
{
element.InvokeMember("click");
}
}
}
*我终于明白了。使用另一种方式,因为下面的内容被vbulliten阻止。我仍然使用webbrowser导航到该站点的登录,但随后我获得它生成的cookie,并通过简单的web请求传递详细信息,该请求复制表单的帖子。使用SmartSniff找到所需信息。非常有用。干杯