我在C#编写代码使用Selenium测试功能。目标是在一个字段中放置一些文本,按一个按钮,等待几次后该网站显示其他表单。但我的代码非常奇怪。如果时间很短:它完美无缺。但如果时间超过30秒,则会抛出异常。这是我的代码的一部分,当页面由Ajax数据加载并在页面中显示时等待:
while (true)
{
try
{
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
IWebElement myDynamicElement = driver.FindElement(By.Id("smapxml"));
Console.WriteLine("Done");
if (myDynamicElement != null)
{
Console.WriteLine("Ok. Element not null. Follow next step.");
break;
}
}
catch (Exception error)
{
Console.WriteLine("error."+error.ToString());
return;
}
}
例外:
OpenQA.Selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"smapxml"}
in OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1092
那么我该如何解决这个问题呢?