Book-TDD-Web-Dev-Python icon indicating copy to clipboard operation
Book-TDD-Web-Dev-Python copied to clipboard

ch11l032 - Typo in the test / issue with wait_for + truthiness

Open HelloThisIsFlo opened this issue 5 years ago • 1 comments

In ch11l032, this is introduced, to test the HTML5 validation:

self.wait_for(lambda: self.browser.find_elements_by_css_selector(
 '#id_text:invalid'
 ))

However, it isn't testing anything.

Because we are using find_elementS_by_css_selector(...) if the element is not found an empty list will be returned and no exception will be raised. Therefore our wait_for immediately returns after the first try and we didn't test anything (try making it fail on purpose by looking for a different id, it won't fail).

To fix that, the solution is simple, remove the S. That way it'll either find that one element, or raise a NoSuchElementException, which is a WebDriverException, so our wait_for works as expected 🙂

HelloThisIsFlo avatar Nov 14 '19 12:11 HelloThisIsFlo