2012-12-13 47 views
1

這是代碼的片段,我就爲華廷跨越不同的結果時,斷點設置

if (!(strGCID.Substring(0, 3) == "BBP")) 
{ 
    string strDate; 

    Span spn = ie.Span(Find.ById("detail_page_section_1_section_b")); 
    for (int x = 1; x < 12; x++) 
    { 
     strDate = spn.TableCells[x].Text; 
     if (strDate.IndexOf("AM") > 0 || strDate.IndexOf("PM") > 0) 
     { 
      txtPurchaseDate.Text = DateTime.Parse(strDate).ToString("MM/dd/yyyy"); 
      break; 
     } 
    } 
} 

工作基本上,如果我有一個斷點設置在以「strDate = SPN開頭的行。表「我的程序實際上是應該的方式,我發現在一個跨度塊內的數據。如果我刪除了斷點,我得到了一個數組的索引錯誤,我試着通過表格單元尋找日期。我一直在盯着代碼,並不知道爲什麼會發生這種情況。在這一點上,我認爲最簡單的事情是不打擾頁面上的日期。問題是,我沒有看到什麼?

回答

2

你可能需要調用WaitUntilExists ...

Span spn = ie.Span(Find.ById("detail_page_section_1_section_b")); 
spn.WaitUntilExists(); 
for (... 

HTH!

+0

OMG !!!這是它!吉茲。我一直在盯着我的代碼,忘記了我正在跳過前面的頁面,這些頁面通常會導致我試圖讀取單元格的頁面。我沒有給它足夠的時間來加載。在調試器中,由於它正在暫停,因此在檢查代碼時,頁面會加載。 – RVicta

+0

很高興幫助!作爲一個經驗法則,每當我加載一個元素時,我總是斷言它存在(在你的情況下是spn.Exists),然後再嘗試使用它。解決了我的項目中不必要的錯誤! –