IG.NORE PLS,我对此进行了修改,但无法删除
我知道我的头衔很混乱 这是我打算做的-
我使用案例来运行不同的循环-(不同的类)Commands.games =“ Titanfall”
如果有问题,我从运行它的方法重新启动循环- GoogleSearch(“如何月球漫步”)
我使用多个命令/方法有多个循环/方法,所以我不能只做[GoogleSearch(“ How to moonwalk”)]
我遇到的问题是我不知道如何调用特定的循环,因为我不知道将[FantasticFive]分配为什么。
答案 0 :(得分:1)
您是否正在寻找像这样简单的东西?
在我的解决方案中,我将测试代码分为一个单独的方法,并将模块作为参数传递,而不是设置全局变量。通常,这是一种更好的做法,并且有一天可能会让您一次运行多个模块。
RunTest()
方法使用while(true)
建立无限循环。如果测试成功,则return
语句将中断循环并退出该方法。
ChromeDriver
在using
子句中实例化,因为它是Disposable。您应该这样做。
Quit()
调用发生在finally
块中,因此即使您退出循环,也将在每次迭代中调用它。
与您的示例一样,catch
块只是吞没了异常。但是,这不是推荐的做法。如果可能,您应该尝试捕获更具体的异常,并且可能应该维护一个重试计数器,以便在连接永不起作用的情况下程序不会永远运行。
private static void RunTest(string module)
{
while (true)
{
using ( var driver = new ChromeDriver(chromeLocation) )
{
try
{
driver.Url = url;
bool check = WaitForElement(By.Id("textbox id"), 7);
if (check) return;
}
catch (Exception exception)
{
}
finally
{
driver.Quit();
}
}
}
}
public static void Main()
{
RunTest("main");
Console.WriteLine("main");
Console.ReadLine();
}