C# 如何通过编程方式点击facebook';邮政';webbrowser控件中的按钮

C# 如何通过编程方式点击facebook';邮政';webbrowser控件中的按钮,c#,facebook,webbrowser-control,sendkeys,C#,Facebook,Webbrowser Control,Sendkeys,我有一个webbrowser控件,可以加载facebook,使用SendKeys编写消息,但我找不到一种方法来“单击”Post按钮 <button class="_42ft _4jy0 _11b _4jy3 _4jy1 selected _51sy" type="submit" value="1" data-ft='{"tn":"+{"}'>Post</button> 我试过这样的东西: HtmlElement button = webBrowser1.Document

我有一个webbrowser控件,可以加载facebook,使用SendKeys编写消息,但我找不到一种方法来“单击”Post按钮

<button class="_42ft _4jy0 _11b _4jy3 _4jy1 selected _51sy" type="submit" value="1" data-ft='{"tn":"+{"}'>Post</button>
我试过这样的东西:

HtmlElement button = webBrowser1.Document.GetElementById("_42ft");
button.InvokeMember("Click");
当我在常规WebBrowser中使用“inspect elements”时,下面的html代码似乎就是Post按钮

<button class="_42ft _4jy0 _11b _4jy3 _4jy1 selected _51sy" type="submit" value="1" data-ft='{"tn":"+{"}'>Post</button>
Post
我试过所有这5个字符串,认为是按钮名,但当我尝试用
button.InvokeMember(“单击”)单击它们时,它们都是空的


这让我快发疯了。是的,我知道我可以使用FacebookAPI,但我发现它让人困惑,他们上次的更新破坏了我的程序。

要使用GetElementById,需要提供元素的ID属性值。您提供的按钮元素未设置ID属性

您可以做的是获取所有按钮元素的集合:

var buttons = Document.GetElementsByTagName("button");
并筛选其中一个值为“_42ft_4jy0 _11b _4jy3 _4jy1”的属性“class”:


但是!使用这种方法是一个非常糟糕的主意,因为一旦他们更改了该元素上class属性的值,您将得到null,并且必须更新代码。我强烈建议您使用他们的API。

尝试使用
u\u 0\u l
,因为我在chrome中看到了这个价值……我远非web开发专家,但乍一看,您可能把
Id
类混为一谈。如果我没有记错,您应该通过
HtmlElementCollection coll=webBrowser1.Document.GetElementsByClassName提取集合(“_42ft _4jy0 _11b _4jy3已选中_51sy
&然后遍历该集合以找到正确的按钮。--再说一遍,我对此不太了解,所以我可能完全错了。我知道这不是最好的方法,但API不再允许您以编程方式发布到facebook组,除非您是该组的管理员。