0

Seleniumテストに使用されているメソッド内に次のコードのバリエーションがいくつかあり(特定のイベントを待ってから戻る)、リファクタリングして再利用できるようにしたいので、遅延と試行/キャッチを制御するロジックがあります一般的な方法ですが、状況に応じて条件を入れ替えることができます。

これを達成する簡単な方法はありますか?

コード:

for (int second = 0; second <= 10; second++)
    {
            try
            {
                // bit that needs to vary
                matchedAddresses = driver.FindElements(By.ClassName("addresslookup"));
                if (matchedAddresses.Count > 0)
                {
                    break;
                }

            }
            catch (Exception)
            {
            }
            Thread.Sleep(1000);
        }          
return matchedAddresses.Count;
4

2 に答える 2

1

次のような引数を取る関数が必要ですFunc<int>-要素の数を返すメソッド(または enumerable Func<IEnumerable<sometype>>

public int GetCountOfElementsWithWait(Func<int> test)
{
    .....
    var count = test();
    ....
}
于 2013-03-18T16:03:19.387 に答える
0

少し明白すぎるように思えますが、これは機能しますか?

public int GetCountOfElementsByClassName(string className)
{
    for (int second = 0; second <= 10; second++)
    {
        try
        {
            // bit that needs to vary
            matchedElements = driver.FindElements(By.ClassName(className));
            if (matchedElements.Count > 0)
            {
                break;
            }

        }
        catch (Exception)
        {
        }
        Thread.Sleep(1000);
    }          
    return matchedElements.Count;
}
于 2013-03-18T15:57:01.810 に答える