C# 用可变条件逻辑创建可重用方法
在用于Selenium测试的方法中,我有以下代码的几个变体(在返回之前等待某些事件),我希望重构它并使其可重用,因此我有控制延迟和try/catch的逻辑作为通用方法,但能够根据具体情况交换条件 有没有一个简单的方法来实现这一点 代码:C# 用可变条件逻辑创建可重用方法,c#,selenium,methods,C#,Selenium,Methods,在用于Selenium测试的方法中,我有以下代码的几个变体(在返回之前等待某些事件),我希望重构它并使其可重用,因此我有控制延迟和try/catch的逻辑作为通用方法,但能够根据具体情况交换条件 有没有一个简单的方法来实现这一点 代码: for(int秒=0;秒0) { 打破 } } 捕获(例外) { } 睡眠(1000); } 返回匹配的地址。计数; 似乎有点太明显了,但这行得通吗 public int GetCountOfElementsByClassName(strin
for(int秒=0;秒0)
{
打破
}
}
捕获(例外)
{
}
睡眠(1000);
}
返回匹配的地址。计数;
似乎有点太明显了,但这行得通吗
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;
}
public int GetCountOfElementsByClassName(字符串类名称)
{
用于(整数秒=0;秒0)
{
打破
}
}
捕获(例外)
{
}
睡眠(1000);
}
返回匹配元素。计数;
}
您希望函数采用类似Func
的参数—返回元素数的方法(或可枚举Func
)
public int getCountofElementswitwait(函数测试)
{
.....
var count=test();
....
}
您希望恢复此操作的哪一部分?在我看来,您只是通过类名获得元素计数。您是否希望在各种类名中重复使用它?
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;
}
public int GetCountOfElementsWithWait(Func<int> test)
{
.....
var count = test();
....
}