我目前正在尝试使用WatiN进行一些自动数据收集。我以前使用WebBrowser控件,我这样做的方式是我声明了一个stathread并从那里运行它,然后使用Browser.DocumentCompleted我开始void LoginPageLoaded
我将设置用户并传递,并且登录。事情是,WatiN,我正在努力
var th = new Thread(() =>
{
Browser browser = new IE(url);
browser.WaitForComplete();
HolyThunder hl = new HolyThunder();
l.LoginPageLoaded();
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
但显然,当我尝试在LoginPageLoaded上使用浏览器实例时,它会说它不知道它是什么,因为它是在第一个线程内声明的。当我通过browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(LoginPageLoaded);
运行LoginPageLoaded时,我没有这样做,我显然无法在该STAThread之外声明浏览器。您认为我能做些什么来解决这个问题?
答案 0 :(得分:0)
您可以尝试使用NHtmlUnit,它是一个无头浏览器。我不确定你是否可以用WatiN做到这一点。
答案 1 :(得分:0)
你可以无头地运行WebKit(例如参见http://phantomjs.org/),但我不知道你是否可以从WatiN开车。
答案 2 :(得分:0)
我猜你想隐藏网页浏览器窗口。 在这种情况下试试这个:
Settings.Instance.MakeNewIeInstanceVisible = false;
答案 3 :(得分:0)
打开" webbrowser"如果没有实际拥有webbrowser的可视组件,请使用
var browser = new IE();
browser.Visible = false;