0

だから私は滑らかなグリッドを使用するウェブサイトを持っています. 基本的に、ブラウザ ウィンドウが最大化されている場合でも、水平スクロールバーが表示されます (これはユーザーの設計によるものです)。現在、Web自動化テスト(セレンを使用)では、列の総数は正しいですが、右のセレンにスクロールしないと、表示されている列ヘッダーのみが表示され、表示されていない他の列は空白または空の文字列を返します。皆さんへの私の質問は、同様の問題があり、この問題をどのように回避したかです。これはこれまでの私のコードです。ただし、滑らかなグリッドがスクロールせずに新しいコンテンツをロードしていない場合、空白が返されます。すべての列ヘッダーを取得するには、どうにかして右にスクロールできる必要があります。

int GetColumnIndexByName(string columnName)
{
    VerifyComponentLoaded();
    var colHeaders = Driver.FindElements(By.XPath("somepath"));
    for (int i = 0; i < colHeaders.Count; i++)
    {
        if (colHeaders.ElementAt(i).Text == columnName)
            return i;                    
    }
    Assert.Fail("The columnName {0} was not found.", columnName);
}
4

1 に答える 1

0

次の SlickGrid メソッドを使用できます。

grid.setActiveCell(0,0);  // right before the for loop

次に、 for ループ内の一番上にあります。

grid.navigateRight();

これにより、必要に応じて各列が表示されます。ただし、SlickGrid は表示可能な列と行 (およびいくつかのバッファー) のみをレンダリングすることに注意する必要があるため、テストのために DOM セレクターを信頼するのは賢明ではありません。特に、SlickGrid は既存の要素も再利用し、垂直方向および水平方向にスクロール/ページ付けするときに内部テキストを単純に置き換えるためです。

于 2013-09-22T19:13:03.487 に答える