我有一个需要运行在Web浏览器控制一些自动化的任务,但我似乎面临一些限制/我不是100%确定如何解决未知数。 我跑的应用是不公开发行,所以我可以强制安装IE8的先决条件。
GeckoFX( http://geckofx.org只是它不给我操作DOM,我将使用WebBrowser的InvokeMember方法上的HtmlElement对象能够接受的方式)将是巨大的。
WebKit.net甚至会更好,但它在它的发展提供我需要做这一点的功能为时尚早。
这给我留下了WebBrowser控件。 与web浏览器的问题是,它虽然只是运行IE浏览器,这是所有进程大胖共享环境。 换句话说,所有实例共享的cookies,会话,代理设置等。
这是我想要的东西:
理想情况下,我想能够在单独的线程上运行多个独立的自动化任务,每个都有自己的私人浏览器控件,每个都有自己的孤立会话/环境的任务完成时不保留。
任何帮助或输入此将不胜感激!
不,你不能运行的InPrivate模式WebBrowser控件; 这根本就不是一个支持的方案。
是的,你可以运行的InPrivate模式IE的两个实例,并相互隔离。
使用命令行:IEXPLORE.EXE - 私人-nomerge
下面是一些代码,这将使你访问一个的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