c# - 使用 C# 代码发布到 Facebook 组

标签 c# facebook post

我正在开发一个嵌入了 webbroswercontrol 的 Windows 应用程序。我正在尝试将示例消息发布到一个开放的 Facebook 群组。我无法使用 C# 更改文本框的值。每当我自动单击时,它都会说文本框值为空。解决办法是什么?


<input type="hidden" autocomplete="off" class="mentionsHidden" 
                                 name="xhpc_message" value="lklklkl">

HtmlElement textBox = this.FindControlByName("xhpc_message", 
                                              this.webBrowser.Document.All);

//Click Code
var elements = webBrowser.Document.GetElementsByTagName("button");
foreach (HtmlElement element in elements)
{
    // If there's more than one button, you can check the
    //element.InnerHTML to see if it's the one you want


    if (element.InnerText.Contains("Post"))
    {
        if (textBox.InnerText.Trim() == "Write something...")
        {
            textBox.Focus();
            textBox.GetAttribute("value").Equals("Test Message");
            IHTMLElement nativeElement = element.DomElement as IHTMLElement;
            nativeElement.click();
            break;
        }

    }
}

最佳答案

1) 我建议您确保文本框为空,而不是 textBox.InnerText。通常元素的内部文本为空,因此最好检查“占位符”属性并更新代码:

// if (textBox.InnerText.Trim() == "Write something...")
if (textBox.GetAttribute("placeholder") == "Write something...")

2) 此代码未设置值。它获取值并与“测试消息”进行比较。

textBox.GetAttribute("value").Equals("Test Message");

只需使用 SetValue 即可。

textBox.SetAttribute("value", "Test message");

3) 确保所有操作都在页面加载后进行。

public SomeFormName()
{
    ...
    webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
}

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs args)
{
    // put your code here
}

4) 不确定 FindControlByName 是如何工作的,所以检查一个简单的 LINQ 查询以确保找到文本框。

var textbox = webBrowser.Document.All.OfType<HtmlElement>()
    .Where(item => item.Name == "xhpc_message")
    .FirstOrDefault()
;

关于c# - 使用 C# 代码发布到 Facebook 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053971/

相关文章:

facebook - 使用测试用户/测试帐户在粉丝页面上查看应用程序

ios - Facebook iOS 应用政策 : Where is the back to Facebook banner in the sdk?

php - 使用 jQuery 显示 POST 数据?

C# 正则表达式数字格式

c# - Web Api/ASP.NET Windows 身份验证如何工作?

c# - 使用 Entity Framework 从 Web 服务访问数据?

java - ubuntu 14.04 上的 JNI4Net

php - 使用新的 PHP SDK (3.X.X) 请求许可

javascript - PHP _POST 与 Ajax 不工作

jquery - 如何在jquery post函数中指定二进制数据