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.Table」で始まる行にブレークポイントが設定されている場合、プログラムは実際には正常に動作し、スパンブロック内のデータを検索します。ブレークポイントを削除すると、配列のインデックスエラーが発生し、テーブルのセルをステップスルーして日付を検索しようとします。私はコードを見つめていましたが、なぜこれが起こるのか理解できません。この時点で、私は最も簡単なことはページで日付を探すことを気にしないことだと思っています。問題は、何が見えないのかということです。

4

1 に答える 1

2

おそらくWaitUntilExistsを呼び出す必要があります...

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

HTH!

于 2012-12-13T16:16:06.397 に答える