Добрый день, интересует один нюанс. Зачем элемент помещен внутри цикла? Могу предположить, что он только в данном случае берет значение заново и проверять элемент на IsVoid (который по идее сам может делать данные действия) имеет смысл только после этого, но это не точно.
Предположительно, элемент не сразу появляется на странице и так реализовано ожидание и возможно, что нужно после достижения цели ( получение ссылки ) - поставить break.