【发布时间】:2016-07-18 15:07:42
【问题描述】:
链接是我打开来测试的一个群。
构造函数中的代码:
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate("https://www.facebook.com/groups/993071237423013/");
然后在 DocumentCompleted 事件中:
if (e.Url.AbsoluteUri != webBrowser1.Url.AbsoluteUri)
{
return;
}
HtmlElementCollection items = webBrowser1.Document.GetElementsByTagName("div");
foreach (HtmlElement item in items)
{
if (item.GetAttribute("className") == "_209g _2vxa")
{
item.SetAttribute("value", "אני לבדיקה 123");
}
}
var elems = wb.Document.GetElementsByTagName("button");
foreach (HtmlElement elem in elems)
{
if (elem.InnerText == "Post")
{
elem.InvokeMember("click");
}
}
但我无法通过第一行:
webBrowser1.Document.GetElementsByTagName("span");
我通过了它,但它从来没有找到类名,也从来没有在文本框中设置文本说在网页上写一些东西。
当我在文本框上制作 Inspect 元素以写我看到的内容时:
<div data-block="true" data-offset-key="72l55-0-0" class="_209g _2vxa">
<span data-offset-key="72l55-0-0">
<span data-text="true">This is CLEAR</span>
</span>
</div>
This is CLEAR 是我在文本框中输入的内容说写一些东西 我看到了 _209g _2vxa 类,但它没有在行内传递:
if (item.GetAttribute("className") == "_209g _2vxa")
我想要的是在框中设置一个文本写一些东西,然后点击按钮发布
我在我的主要 Facebook 墙上成功地做到了,但是当我在我的小组中时,我找不到如何做到这一点。
【问题讨论】:
-
找到
"className"属性而不是"class"。 -
现在尝试“class”也没有用。
-
我没有说它可以通过使用
class来工作,但这是你代码的第一个问题:) -
啊,好的,呵呵:)我会再看一遍的。
-
也可以使用
GetElementsByClassName