`ParseError` might be a little too implementation-specific -- you could imagine that if the course list page DOM were different, you wouldn't need to do any parsing.  Maybe make an exception specific to this page object; something like `CourseListPageError`.