WebBrowser. Проблема с документами - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь сделать простую программу, которая переходит на страницу и нажимает на кнопку. Однако по какой-то причине, когда я попытался бы вызвать .GetElementByID в WebBrowser.Document, там не было бы ни одного доступного, есть только такие вещи, как Equals, GetHash или что у вас. Нет GetElementByID. Поэтому я попытался сделать это:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            webBrowser1.Navigate("http://kdp.amazon.com");

            HtmlDocument doc = (HtmlDocument)webBrowser1.Document;

            doc.GetElementByID("whatever");


        }

и я получаю эту ошибку:

Невозможно привести COM-объект типа 'mshtml.HTMLDocumentClass' к классу. введите 'System.Windows.Forms.HtmlDocument'. Экземпляры типов, которые представляют компоненты COM не могут быть приведены к типам, которые не представляют COM-компоненты; Однако они могут быть приведены к интерфейсам, пока базовый COM-компонент поддерживает вызовы QueryInterface для IID интерфейс.

Мне не хватает ссылки или что-то? Все учебники, которые я нашел в stackoverflow, говорят о вызове методов в webBrowser.Document, которого у меня нет в наличии.

1 Ответ

1 голос
/ 08 декабря 2011

Похоже, вы используете неуправляемый элемент управления ActiveX WebBrowser вместо управляемой оболочки.

Измените элемент управления на управляемый System.Windows.Forms.WebBrowser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...