Можете ли вы перейти на javascript:
URL? Вероятно, это дешевый способ сделать это, и я верю, что это то, чем я заканчивал в прошлом.
Есть и другой способ прямого доступа к DOM. Он включает в себя доступ к WebBrowser.Document
, который вы можете привести к типу COM. Мне нужно будет связаться с вами по точной технике - я ее где-то сохранил - но есть небольшой намек на MSDN .
Edit:
Самый простой способ проверить JavaScript - сделать что-то вроде:
webBrowser.Navigate("javascript:alert('Test');")
Если появляется диалоговое окно с текстом Test
без исчезновения веб-страницы, оно работает. Вы можете вставить любой JavaScript, какой захотите, при условии, что тест сработал. Например:
webBrowser.Navigate("javascript:void(document.body.innerHTML = '<div>Test</div>' + document.body.innerHTML);");
Правильный путь
Я собираюсь дать этому шанс, но он не проверен, так что имейте в виду, что вам, возможно, придется немного подправить этот процесс.
- Ссылка на
ShDocVw.dll
.
- Добавить оператор
using
для пространства имен mshtml
.
- Приведите объект
WebBrowser.Document
к интерфейсу mshtml.IHTMLDocument2
.
- Это должно дать вам доступ к DOM документа, так что вы сможете использовать IntelliSense, чтобы выяснить, что делать дальше. Тем не менее, вы будете использовать COM, так что это будет немного болезненно и потребует много работы с интерфейсами.
Редактировать: Этот вопрос имеет несколько хороших примеров. Я бы использовал простое приведение вместо ключевого слова as
. obj as Something
является синтаксическим сахаром для obj is Something ? (Something)obj : null
. Этот дополнительный тест здесь действительно не нужен.