我試圖讓Watin在我的SSIS腳本中工作任務通過在新線程中打開IE來執行一些自動操作,執行某些操作,找到最終值並基本在父線程中返回/設置該值。Watin ApartmentState.STA線程和父線程之間的共享變量?
所以我有這個現在:
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()
找我的值是一個包含一些CSV URL字符串。然後我想使用該字符串下載CSV並處理它。
問題是當我嘗試設置findHiddenURL()
裏面finalValueFromWeb
的值時,進程失敗。異常消息說The Object Reference is not set to an instance of an object
有人可以告訴我我該怎麼處理這個問題嗎?做這種事情的正確方法是什麼?謝謝
避免。在此之前獲取您需要的字符串。 –