Заполнение текста VBulliten Личное сообщение - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь отправить личное сообщение в веб-форуме через C #.Я могу заполнить каждый компонент, кроме самого окна сообщения:

nk

Обычный метод установки элемента innertext в области textarea ничего не делает, он работает для остальной части страницыно не это ??Я понятия не имею, почему, и я могу подтвердить, что код правильно определяет эту область.Я могу только представить, что что-то еще действительно управляет показом и значением представления.Я нашел:

Когда я устанавливаю значение, отличное от 0, сообщение будет публиковаться, но текст будет отсутствовать каждый раз.

Есть идеи?

1 Ответ

0 голосов
/ 04 марта 2012

Я не знаю, какой ваш любимый способ доступа к веб-странице, но вы можете создать фиктивную форму WebBrowser, а затем использовать такую ​​функцию:

    void SetText(string attribute, string attName, string value)
    {
        HtmlElementCollection tagsCollection = webBrowser1.Document.GetElementsByTagName("input");

        foreach (HtmlElement currentTag in tagsCollection)
        {

            if (currentTag.GetAttribute(attribute).Equals(attName))
                currentTag.SetAttribute("value", value);
        }
    }

    void CheckBox(string attribute, string attName, string value)
    {

        // Get a collection of all the tags with name "input";

        HtmlElementCollection tagsCollection = webBrowser1.Document.GetElementsByTagName("input");

        foreach (HtmlElement currentTag in tagsCollection)
        {
            if (currentTag.GetAttribute(attribute).Equals(attName))
                currentTag.SetAttribute("checked", value);
        }
    }


    void ClickButton(string attribute, string attName)
    {
        webBrowser1.Document.GetElementsByTagName("input");
        HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("button");

        foreach (HtmlElement element in col)
        {
            if (element.GetAttribute(attribute).Equals(attName))
            {
                element.InvokeMember("click");
            }
        }
    }
...