【问题标题】:How do I fill in the TextBox with text on the page of website using WebBrowser and then click a Button on the site?如何使用 WebBrowser 在网站页面上填写文本框,然后单击网站上的按钮?
【发布时间】:2016-07-18 15:07:42
【问题描述】:

链接是我打开来测试的一个群。

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

我通过了它,但它从来没有找到类名,也从来没有在文本框中设置文本说在网页上写一些东西。

当我在文本框上制作 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

标签: c# html .net winforms


【解决方案1】:

我不确定您是否可以使用 WebBrowser 控件简单地实现这一点。

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

在 DotNetBrowser 中执行此操作的方法:

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

// Executing Javascript code
browser.ExecuteJavaScript("someAction();");

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多