public WatiN_IE createIEObject(string url, int top, int left, int width, int height) { IEThread = O2Thread.staThread( () => { "launching a new WatIN InternetExplorer Process".info(); try { if (url.valid().isFalse()) { url = "about:blank"; } Settings.MakeNewIeInstanceVisible = false; IE = new IE(url); InternetExplorer = (InternetExplorerClass)IE.InternetExplorer; InternetExplorer.Top = top; InternetExplorer.Left = left; InternetExplorer.Width = width; InternetExplorer.Height = height; InternetExplorer.Visible = true; InternetExplorer.OnQuit += close; WaitForIELaunch.Set(); WaitForIEClose.WaitOne(); } catch (Exception ex) { ex.log("in WatiN_IE createIEObject"); WaitForIELaunch.Set(); WaitForIEClose.Set(); } }); WaitForIELaunch.WaitOne(); return(this); }
public WatiN_IE attachTo(InternetExplorer ieInstanceToAttach) { IEThread = O2Thread.staThread( () => { try { //WatiN.Core.Settings.AutoStartDialogWatcher = false; WaitForIEClose.Reset(); "attaching to IE with LocationName '{0}'".info(ieInstanceToAttach.LocationName); IE = new IE(ieInstanceToAttach); //this doesn't work on external processes attach //InternetExplorer = (SHDocVw.InternetExplorerClass)IE.InternetExplorer; (ieInstanceToAttach as DWebBrowserEvents2_Event).OnQuit += () => { //"ON WatiN_IE attachTo Quit EVENT".debug(); close(); }; WaitForIELaunch.Set(); WaitForIEClose.WaitOne(); //"AFTER WaitForIEClose".error(); } catch (Exception ex) { ex.log("in attachTo(InternetExplorer)", true); WaitForIELaunch.Set(); WaitForIEClose.Set(); } }); //"before WaitForIELaunch".error(); WaitForIELaunch.WaitOne(); //"after WaitForIELaunch".error(); return(this); }