2013-03-18 69 views
0

在用於Selenium測試的方法(在返回之前等待某些事件)中有以下代碼的幾種變體,我想重構它並使其可重用,因此我擁有邏輯控制延遲& try/catch作爲一種通用方法,但能夠根據情況交換進出條件。使用可變條件邏輯創建可重複使用的方法

有沒有簡單的方法來實現這一目標?

代碼:

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; 
+0

?在我看來,你只是通過classname來計算元素。你是否希望重複使用它來獲得各種類名? – 2013-03-18 16:01:05

回答

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; 
} 
1

你想要的功能,它利用類似Func<int>參數 - 方法,返回元素的數量(或枚舉Func<IEnumerable<sometype>>

public int GetCountOfElementsWithWait(Func<int> test) 
{ 
    ..... 
    var count = test(); 
    .... 
} 
你要哪的這部分可重複使用做出
相關問題