“预期条件”无非是使用lambda表达式的匿名方法。自.NET 3.0以来,这些已成为.NET开发的主要内容,尤其是随着LINQ的发布。由于绝大多数.NET开发人员都对C#lambda语法感到满意,因此WebDriver .NET绑定的ExpectedConditions
实现只有几种方法。
按照您的要求创建等待看起来像这样:
webdriverwait wait = new webdriverwait(driver, TimeSpan.FromSeconds(10));
wait.Until<IWebElement>((d) =>
{
IWebElement element = d.FindElement(By.Id("myid"));
if (element.Displayed &&
element.Enabled &&
element.GetAttribute("aria-disabled") == null)
{
return element;
}
return null;
});
如果您对这种构造没有经验,我建议您这样做。它只会在将来的.NET版本中变得越来越普遍。