2009-10-20 2 views
6

У меня есть необходимость запускать некоторые задачи автоматизации в управлении веб-браузером, но, похоже, я сталкиваюсь с некоторыми ограничениями/неизвестными, что я не уверен на 100% как решить. Приложение, которое я запускаю, не предназначено для публичного выпуска, поэтому я могу обеспечить предварительное условие, что IE8 установлен.Управление WebBrowser, изоляция и режим IE8 InPrivate

GeckoFX (http://geckofx.org) был бы замечательным, за исключением того, что он не предлагает мне приемлемый способ манипулирования DOM, поскольку я бы использовал метод InvokeMember WebBrowser для объектов HtmlElement.

WebKit.net будет еще лучше, но слишком рано в разработке, чтобы предложить функциональность, необходимую для этого.

Это оставляет меня с помощью элемента управления WebBrowser. Проблема с WebBrowser заключается в том, что он просто запускает IE, что является большой общей общей средой со всеми процессами. Другими словами, все экземпляры совместно куки, сессии, настройки прокси-сервера и т.д.

Вот что я хочу:

  • В конце сеанса автоматизации, куки/сессии/объекты кэша не сохраняются. Вместо того, чтобы очищать глобальную папку временных файлов Интернета, есть ли способ получить доступ к режиму InPrivate, открытому IE8?

  • Если есть доступ к InPrivate для просмотра, возможно ли, чтобы я запускал два сеанса InPrivate-режим отдельно друг от друга?

В идеале я хотел бы иметь возможность запускать несколько задач изолированных автоматизации в отдельных потоках, каждый со своим собственным контролем браузера, каждый со своей собственной изоляцией сессии/средой, которая не сохраняется после завершения задачи.

Любая помощь или ввод в это оценили бы!

+0

ли вы имеете в виду Windows Forms управления WebBrowser, WPF, или что? –

+0

Привет, я сожалею, что это не предлагает никакой помощи, но «WebBrowser, хотя это то, что он просто запускает IE, что является большой общей общей средой со всеми процессами. Другими словами, все экземпляры используют файлы cookie, сеансы, настройки прокси, и т.д." Откуда вы узнали эту информацию? Я понял, что WebBrowser не делится своими файлами с другими процессами ... – JonWells

ответ

6

Нет, вы не можете запустить элемент управления WebBrowser в режиме InPrivate; это просто не поддерживаемый сценарий.

Да, вы можете запускать два экземпляра IE в режиме InPrivate и изолировать их друг от друга.

Использование командной строки: iexplore.exe -private -nomerge

+0

doh. хорошо, спасибо. –

0

Вот код, который даст вам доступ к InPrivate IE

Friend Function Open(Optional ByVal Url As String = "about:blank", Optional ByVal WindowState As ProcessWindowStyle = ProcessWindowStyle.Hidden) As WebBrowser 
On Error Resume Next 

Dim Start As New ProcessStartInfo 
Dim Windows = New ShellWindowsClass 
Dim Count = Windows.Count 
Start.FileName = "iexplore.exe" 
Start.Arguments = "-private -nomerge " & Url 
If WindowState = ProcessWindowStyle.Hidden Then 
    Start.WindowStyle = ProcessWindowStyle.Minimized 
Else 
    Start.WindowStyle = WindowState 
End If 
Process.Start(Start) 

Wait.Reset() 
Do 
    If Windows.Count > Count Then Exit Do 
Loop While Wait.Waiting 

Browser = Windows(Count) 
Browser.Visible = (WindowState <> ProcessWindowStyle.Hidden) 
Return Browser 
End Function 
Смежные вопросы