Я попробовал ваш код, и я также получил исключение.Я думаю, что понимаю, что происходит.Когда вы в первый раз делаете Browser.Links
, вы получаете все ссылки текущей страницы, затем вы переходите на другую страницу и возвращаетесь на первую страницу, но для WatiN это новая страница.Таким образом, ваше перечисление не может работать, потому что вы перечисляете по ссылкам первой страницы.
Что я могу предложить, так это получить все Uri ссылок, а затем попробовать их один за другим в новом браузере
IEnumerable<Uri> uris = Browser.Links.Select(l => l.Uri);
foreach(Uri uri in Uris)
{
try
{
using(var browser = new IE(uri))
{
// do nothing or detect 404, 403, etc errors
}
// no error
}
catch(exception)
{
// log error
}
}