現在、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 void でブラウザ インスタンスを使用しようとすると、th スレッド内で宣言されているため、それが何であるかわからないと表示されます。を介して LoginPageLoaded を実行したときは実行しませんでしたbrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(LoginPageLoaded);
。明らかに、その STAThread の外部でブラウザーを宣言することはできません。これを修正するために何ができると思いますか?
編集-私はひどく失敗しました...そのSTAthread内で必要なすべてを実行すると、すべてが機能します。私の質問は、実際にウェブブラウザの視覚的コンポーネントを持たずに「ウェブブラウザ」を開く方法はありますか?