Cha*_*lie 6 .net c# facebook webbrowser-control
我正在尝试使用webbrowser控件在Facebook页面上发布图片和文本.
我在文本区域粘贴一个URL,当它获得缩略图时我发送密钥(ctrl + A).然后发送文本通过发送keys.Send(...)
所有工作正常,直到单击发布按钮它给出错误
"This status update appears to be blank. Please write something or attach a link or photo to update your status."
Run Code Online (Sandbox Code Playgroud)
我试图设置Textarea的所有属性,如标题,内部文本和占位符,我确信Text区域也不是null.
HtmlElement elementTextArea = null;
HtmlElementCollection elemss = webBrowser1.Document.GetElementsByTagName("textarea");
foreach (HtmlElement elem in elemss)
{
if (elem.GetAttribute("name") == "xhpc_message")
{
elementTextArea = elem;
break;
}
}
elementTextArea.Focus();
Print("\nSet Focused\n");
SendText(url);
webBrowser1.Update();
DoWait(4);
SendText("^(a)");
SendText(text);
webBrowser1.Update();
elementTextArea = webBrowser1.Document.GetElementById(id);
elementTextArea.InnerText += "\nINNER TEXT";
Print("\nAdded Inner Text ABCD\n");
//elementTextArea.SetAttribute("placeholder", text + "PLACEHOLDER");
//Print("\nAdded place holder text abcd \n");
/*
HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement elem in elems)
{
if (elem.GetAttribute("className").Equals("mentionsHidden"))
{
Print("\nAdded Second Text\n");
elem.SetAttribute("value", text+"");
break;
}
}
*/
DoWait(3);
HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("button");
foreach (HtmlElement element in elements)
{
if (element.GetAttribute("className") == "_42ft _4jy0 _11b _4jy3 _4jy1 selected _51sy")
{
Print("\nPost Button Found\n");
element.Focus();
Print("\nFocus1\n");
DoWait(2);
SendText("~");
element.InvokeMember("click");
Print("\nClicked1\n");
Run Code Online (Sandbox Code Playgroud)
请帮助我,花了这么多时间.
小智 1
提交帖子时,除其他变量外,它还包括:
clp:{"cl_impid":"eeeeeeee","clearcounter":0,"elementid":"v_1_2n","version":"x","parent_fbid":1000000000000}
xhpc_message_text:
xhpc_message:
Run Code Online (Sandbox Code Playgroud)
如果您查看页面的源代码,_text上面的字段是文本区域下的隐藏字段,它似乎反映了相同的值。并且,当最初单击文本区域时,clp隐藏字段也会被调整。
您必须精确复制提交的每个字段,克隆会话,然后希望他们不会通过重命名字段来更改内容,或者更糟糕的是,添加另一个其名称基于唯一 ID 并随机放置在代码中的字段。
所以,简而言之,你就可以了,但你可能想考虑使用他们的 API,即使有愚蠢的“我是你爸爸”,他们现在已经制定了权限规则......这可能会为你省去一些严重的麻烦!