2015-12-26 36 views
1

链接是我为测试打开的组。如何使用WebBrowser在网站页面上填写文本框,然后点击网站上的按钮?

my group

构造函数中的代码:

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"); 

我通过它,但它永远不会找到className,并且永远不会在文本框中设置文本说写在网页上的东西。

当我做检查的文本元素写的东西,我看到:

<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> 

,这显然是我在文本框中键入说写东西 我看到了类_209g _2vxa但它不是通过线内:

if (item.GetAttribute("className") == "_209g _2vxa") 

我想设置在框中的文字写的东西和点击该按钮后

我得s在我的主要脸书墙上做成功,但是当我在我的团队中时,我无法找到如何去做。

+0

代替' “类名”''找到 “类”'属性。 –

+0

现在尝试“班”也没有工作。 –

+1

我没有说它会通过使用'class'工作,但它是你的代码的第一个问题:) –

回答

1

我不确定您是否可以简单地使用WebBrowser控件实现此功能。

或者,您可以尝试使用DotNetBrowser组件(我是其开发人员之一)实现您的功能。

在DotNetBrowser做到这一点的方法:

// Setting value for an input 
browser.GetDocument().GetElementById("some_input").SetAttribute("value", "some_value"); 

// Executing Javascript code 
browser.ExecuteJavaScript("someAction();"); 
相关问题