Selenium C # ImplicitWait не будет ждать загрузки элемента - PullRequest
0 голосов
/ 21 ноября 2018

Я создал пользовательский метод для неявного ожидания загрузки элемента, затем я использую его в пользовательском методе щелчка следующим образом:

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']"}

Я пытался сделать все, чтобы он дождался загрузки этого элемента, но я не могу понять этоиз.Как ни странно, если я отлаживаю его ... он находит элемент.

Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...