2017-02-02 5 views
-1

HTMLテーブルの行0、列3にアクセスできない理由を理解しようとしています。私はC#とVisual Studioを使用しています。テーブルのインデックスにアクセスしているときに問題に遭遇しています

デバッグ中は、一度通過させてから変数として取得する同じ行に戻すと、動作します。しかし、決して初めてではありません。行1、列3、次のセルが1つ下に行くと、行1(インデックス0)を除いて他のセルでもうまくいきます。

セグメントのコードは次のとおりですが、特に最初の行では機能しなかった理由を理解できなかったため、ページが完全に読み込まれているかどうかを確認するために遅延を追加しようとしました任意の値を返します。あなたに思い出させるために、最初の行の項目が変更されたときでも、最初の行以外はすべての行で機能しました。最初の行、4列目の項目は常に変更されるので、毎回アクセスできる特定のクラスや識別子はありません。

最初の行で修正されていない理由がわかっていれば、非常に感謝しています。私の周りの仕事を持っているが、ちょうどこのようにそれを行うには容易になるだろう:

using Microsoft.VisualStudio.TestTools.UITesting.HtmlControls; 

    var browser = BrowserWindow.Launch("https://blah.com/"); 

    var cell = GetCell(browser, 2, 3); 

    Console.WriteLine(cell.Value.ToString()); 

    HtmlCell GetCell(UITestControl parent, int row, int column) 
      { 
       var cell = new HtmlCell(parent); 
       cell.SearchProperties.Add(HtmlCell.PropertyNames.RowIndex, row.ToString()); 
       cell.SearchProperties.Add(HtmlCell.PropertyNames.ColumnIndex, column.ToString()); 

       return cell; 
      } 
+0

なりますでしょうか?何が起きているのか理解するのに役立つかもしれません。 – pmcilreavy

+0

行 'var cell = GetCell(browser、0、3);'(行0の列3を取得しようとしたと仮定します)の後にブレークポイントを置いて、返される値を参照してください。例外?また、行が0の開始か1であるかわかりません。 –

+0

私はIntelの仕事をしており、その種の情報は秘密です。@ fallenidolできません。行は0から始まります。インデックスを1にすると、2行目のテキストが表示されます。 nullを返しました。それはすべてを介して実行されますが、出力は空白になりますが、1,3、または他の行にアクセスすると完全にうまく動作します –

答えて

0

アレンを、

あなたがあなたのテーブルのヘッダー行が同じ形式であることを確認することが

残りの行

あなたは行インデックスが0

で開始しますが、デバッグ方法を作成しようとする場合がありますことを正しいです。セルは行の子であることを忘れないでください。テーブル内をUi親オブジェクトとして渡し、各行を繰り返し処理した後、各セルを反復処理して、デバッガがこれらのオブジェクトの型(型を含む)の値として表示しているものを確認します。

私の疑惑は、HTMLのサンプルを投稿することができ、ではなく、よりヘッダ構造または要素は、異なるオブジェクト型を持っていることは何かHtmlCell

関連する問題