У меня есть сценарий проверки Selenium, написанный на C#, который вводит значение поиска, а затем просматривает определенный результат из возвращаемых результатов поиска. Моя проблема заключается в том, что я получаю «нулевое ссылочное исключение» в строке результата. Сбивает с толку, если я вывожу строку в консоль (простой оператор Console.WriteLn), она отлично печатает строку. Это только когда я пытаюсь сделать что-то со строкой, которая генерирует исключение. Любые идеи, почему это может произойти?Исключение нулевой ссылки в строке, которая корректно выводится на консоль
соответствующий код ниже:
IWebElement listElement2 = driver.FindElement(By.ClassName("FixedTables"));
itemsList = new List<IWebElement>(listElement2.FindElements(By.TagName("a")));
foreach (IWebElement item in itemsList)
{
string comparator = item.GetAttribute("onclick");
Console.WriteLine(comparator);//this works to print the string....
//if (comparator.Contains(somestring))//this fails and throws the exception
//{
// item.Click();
// break;
//}
}
Edit: Я изменил вверх код, чтобы выглядеть следующим образом:
string comparator = item.GetAttribute("onclick");
Console.WriteLine(comparator);
if (comparator == null) Console.WriteLine("Is Null");
if (somestring == null) Console.WriteLine("Somestring is Null");
Это мой выход из консоли:
get_emp_risk_details ('560 ',' ');
Is Null
get_emp_risk_details ('490', '');
Is Null
Глупый вопрос: что такое 'somestring', установленный в вашем примере кода? Это нулевое значение? Если я попробую 'MyString.Contains (MyNullStringVar)' я получаю 'ArgumentNullException' –
Некоторая строка - это переменная, которая имеет значение - я также пробовал варианты кода со строковым литералом (« что-то ») и все еще получаю исключение , Кроме того, я тестировал, просто ссылаясь на символ из массива строк (т. Е. Console.WriteLn (компаратор [1])), и это также вызвало исключение. Это очень странно .... – kdavej
Что выводится при записи компаратора на консоль? WriteLine не будет генерировать исключение, если вы передадите ему нулевую переменную. – hatchet