我有以下代码从给定列表中选择一个选项,它通常可以正常工作,但有时会失败,并在第二个if上出现NoSuchElement异常。我的印象是,如果找不到元素,它将再次回到循环中。我相信解释很简单……有人能启发我吗?
public static void selectFromList(String vList, String vText, IWebDriver driver) { for (int sec = 0; ; sec++) { System.Threading.Thread.Sleep(2500); if (sec >= 10) Debug.Fail("timeout : " + vList); if (driver.FindElement(By.Id(ConfigurationManager.AppSettings[vList])).Displayed) break; } new SelectElement(driver.FindElement(By.Id(ConfigurationManager.AppSettings[vList]))).SelectByText(vText); }
好吧,我是Java专家,所以我将不提供代码,而是提供算法:
因此,基本上,您应该在for循环中执行一些异常处理,并捕获该异常,而不执行任何操作。在Java中,它是由tryand catch块完成的。但是因为我不了解C#,所以您必须找出用这种语言完成的工作
try
catch