Кажется, что ваша начальная проверка элемента неверна.Поправьте меня, если я ошибаюсь, но:
IList<IWebElement> boxList = _driver.FindElements(By.Id("ListBox"));
возвращает только один элемент?Если вам нужен список элементов option, вы захотите добавить тег option в проверку FindElements.
IList<IWebElement> boxList = _driver.FindElements(By.CssSelector("select#ListBox option"));
С этим списком элементов он должен вернуть список каждого отдельного элемента option,получить текст каждого.
РЕДАКТИРОВАТЬ
В соответствии с моим комментарием ниже, я думаю, что проблема заключается в том, что вы делаете проверку текста идобавьте для каждого тега параметра, но функциональность, которую вы ищете, заключается в том, что добавление выполняется только после проверки всех параметров.
IList<IWebElement> boxList = _driver.FindElements(By.CssSelector("select#ListBox option"));
bool textExists = false;
foreach(var option in boxList)
{
if(option.Text.Contains("TEST"))
{
textExists = true;
break;
}
}
if(!textExists)
{
_driver.FindElement(By.Id("AddButton")).Click();
var newRecordInfo = table.CreateSet<FeatureInfo>();
foreach (var recordData in newRecordInfo)
{
_driver.FindElement(By.Id("DesTextBox")).SendKeys(recordData.Test_discription);
_driver.FindElement(By.Id("ScoreTextBox")).SendKeys(recordData.Test_score);
new SelectElement(_driver.FindElement(By.Id("TypeDropDown"))).SelectByValue("1");
_driver.FindElement(By.Id("SaveButton")).Click();
}
}
EDIT V2 - обновлена проверка bool