我目前正在嘗試使用WatiN來執行一些自動數據收集。我曾經使用過一個WebBrowser控件,我做的方式是我聲明一個stathread並從那裏運行它,然後使用Browser.DocumentCompleted我開始了一個void LoginPageLoaded
我將設置用戶並傳遞並登錄。事情是,與華廷,我試圖做WatiN需要在STAThreaded線程之外聲明瀏覽器
var th = new Thread(() =>
{
Browser browser = new IE(url);
browser.WaitForComplete();
HolyThunder hl = new HolyThunder();
l.LoginPageLoaded();
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
但很明顯,當我嘗試使用在LoginPageLoaded的瀏覽器實例作廢了說,它downs't知道它是什麼,因爲它被宣佈裏面th線程。當我通過browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(LoginPageLoaded);
運行LoginPageLoaded時,我沒有這樣做,而且我顯然不能在該STAThread之外聲明瀏覽器。你認爲我能做些什麼來解決這個問題?
編輯 - 我失敗了,如此糟糕......如果我在STA線程中做了所有我需要做的事情,那麼一切都會奏效。現在我的問題是,在watin中,是否有打開「瀏覽器」而沒有瀏覽器的可視化組件?
也許WebClient類? –
將問題編輯成完全不同的問題是一個不錯的主意,特別是如果已經有對舊問題的答案。首先,它從答案中刪除上下文。其次,你通過搜索失去了老問題的歷史。總是問一個新問題。 –