Это отличная возможность обучения для написания более качественных утверждений, которые помогут устранить эту и другие проблемы. Вместо того чтобы писать утверждение, которое оценивается как true
/ false
, напишите одно, которое даст вам больше информации. Например, когда ваше утверждение не удается, вы получаете сообщение
Expected: true
But was: false
Не очень полезно, верно? Вместо этого используйте StringAssert.Contains()
наподобие
string expected = "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:";
string actual = driver.FindElement(By.CssSelector("div#item")).Text;
StringAssert.Contains(expected, actual, "Verify error message.");
Теперь, когда ваше утверждение не удалось, вы получите следующую информацию.
"Verify error message."
Expected: String containing "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:"
But was: "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:22.12.23.14"
Теперь, если ваши строки разные, вы можете сравнить их и увидетьгде проблема. Если вы уже сравнили действительные и ожидаемые строки и не видите никакой разницы, вам, вероятно, нужно рассматривать их как значения ASCII, чтобы найти непечатаемый символ.
Также ... всегда, всегда, всегда пишите комментарий об утверждении. Это третья строка в утверждении после ожидаемой и действительной, например,
StringAssert.Contains(expected, actual, "Verify error message.");
Она служит меткой для ошибки и поможет вам определить, какое утверждение на самом деле не удалось.