Selenium C# ImplicitWait не будет ждать загрузки элемента
Я создал собственный метод для неявного ожидания загрузки элемента, а затем использую его в пользовательском методе щелчка следующим образом:
public static void WeElementToBeClickable(this IWebElement element, int sec = 10)
{
var wait = new WebDriverWait(Driver.Browser(), TimeSpan.FromSeconds(sec));
wait.Until(ExpectedConditions.ElementToBeClickable(element));
}
public static void WeClick(this IWebElement element, int sec = 10)
{
element.WeElementToBeClickable();
element.Click();
}
Затем я присоединяю это к любому элементу, на котором щелкаю, чтобы убедиться, что он всегда опрашивает DOM, чтобы убедиться, что элемент был загружен, но, похоже, он не ждет загрузки некоторых конкретных элементов.
Я ищу этот элемент как так:
<span class="button add fr" onclick="GoToHash('/ContractorCommon/Contractor/ContractorAdd', null, 'Contractor'); "><span class="icon-add"></span> Contractor</span>
public IWebElement AddContractorIcon => Driver.FindElement(By.XPath("//span[@class='button add fr']"));
Но это всегда дает следующее исключение:
OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class='button add fr']"}
Я попробовал все, чтобы заставить его ждать загрузки этого элемента, но я не могу понять это. Как ни странно, если я отлаживаю это... он находит элемент.
Любая помощь будет принята с благодарностью!