私はSSISスクリプトタスクでWatinを動作させて、新しいスレッドでIEを開き、何かを実行し、最終的な値を見つけて、基本的に親スレッドでその値を返す/設定することで自動化を実行しようとしています。
だから私は今のところこれを持っています:
public partial class TestWatin{
public void Main()
{
String finalValueFromWeb = "";
Thread runnerThread = new Thread(delegate() { getDAFValue(ref finalValueFromWeb ); });
runnerThread.ApartmentState = ApartmentState.STA;
runnerThread.Start();
runnerThread.Join();
MessageBox.Show(finalValueFromWeb);
//here i want to use the value of finalValueFromWeb to download a file
//but if i try to access finalValueFromWeb the process would fail.
}
//do the Watin stuff here
public void findHiddenURL(String refObject)
{
//setup page controls, press search, grab the value of "hiddenURL"
IE ie = new IE("some_webadress_to_go_to");
ie.Visible = false;
ie.SelectList("testID1").Option("Car").Select();
ie.SelectList("testID2").Option("JAP").Select();
ie.SelectList("testID3").Option("2012").Select();
ie.Button("testSearch").Click();
Link link = ie.Link("hiddenURL");
ie.Close();
//fails here?
refObject = link.Url;
}
}
基本的に私が望んfindHiddenURL()
でいるのは、CSVURLを含む文字列である値を見つけることです。次に、その文字列を使用してCSVをダウンロードして処理します。
問題は、プロセスが失敗するfinalValueFromWeb
内部の値を設定しようとしたときです。findHiddenURL()
例外メッセージにはThe Object Reference is not set to an instance of an object
誰かが私がこの問題についてどうすべきか教えてもらえますか?この種のことを行う適切な方法は何ですか?ありがとう