Вопрос по работе со списком List<IWebElement>!

Подскажите пожалуйста как правильно работать со списком элементов в PageObject

Суть Вопроса:

я нахожу список элементов вот так:

[FindsBy(How = How.CssSelector, Using = ".quick-query>a")]
public IList<IWebElement> head_nav;

потом в самом тесте пытаюсь кликнуть на каждый элемент списка так

foreach (IWebElement el in head_nav)
{
   el.Click();
   driver.Navigate().Back();
}

И вот тут после первого удачного клика мне выдает вот такую ошибку: element is not attached to the page document

Подскажите пожалуйста как решить эту проблему! Спасибо огромное

Элемент мог не прогрузиться, а клик уже происходит. Попробуйте сделать ожидание, пока не загрузится элемент.

Пробовал! Тут проблема в том что после первого клика все элементы списка обнуляются! Список есть! элементы тоже есть но внутри пусто!

Как такое может быть )
А как вы выбераете элементы? После каждой загрузки страницы?
Выбирайте один раз, и ожидайте появления, потом кликайте.

я просто пытаюсь кликнуть на каждый элемент ранее определенного списка!
первый раз кликаю( все хорошо меня перевело на другую страницу) потом я возвращаюсь на исходную страницу и кликаю на следующий элемент списка! но тут и возникает эта ошибка!

когда я проходил в debug у видел что после первого клика все элементы списка потерялись, там просто мусор хранится! В обход этой проблеме приходится после кождого клика опять (на исходной странице) искать весь список, и нажимать уже на следующий элемент! Тогда оно работает! но как то это каряво! Вот думаю как это решить

У вас просто падает StaleElementException.
На странице банально уже нет того элемента, который вы нашли.

я только что изменил цикл foreach на for и все отрабатывает хорошо! Но я так и не понял суть! почему foreach так странно себя ведет

покажите код
Скорее всего в foreach вы вызываете коллбек для старых элементов, а а фор вым льняное их поиск на каждой итерации