Многочисленные проблемы с mshtml - PullRequest
1 голос
/ 07 мая 2011


Я использую объект IE в своем приложении, поэтому мне нужно использовать mshtml для взаимодействия с документом IE.Но у меня есть несколько проблем:

I.Использование element.innerText/innerHTML/outerText/outerHTML возвращает className.Вот пример кода:

    public SHDocVw.InternetExplorer internetExplorer = new SHDocVw.InternetExplorer();

    <...>

    foreach (mshtml.HTMLSpanElement element in webBrowser.Document.GetElementsByTagName("SPAN"))
            {
                if (category.className == "classNameNeeded") //ClassName returns className
                    {
                        if (category.innerText == "InnerTextNeeded") //InnerText too 
                        {
                             webBrowser.Navigate(category.parentElement.getAttribute("HREF"));
                             return true;
                        }
                    }
            }
            return false;

Итак, мое приложение работает некорректно

II.Использование getElementById возвращает DBNull вместо элемента на веб-странице.Я полностью уверен, что на веб-странице есть такой элемент.Пример кода:

    if(!webBrowser.Document.getElementById("IdNeeded").Equals(DBNull.value)){
    <...>
    }

Я думаю, что эта проблема связана с HTML-кодом страницы и ее разбором.

Как я могу решить эти проблемы?
Заранее спасибо.

...