Book-TDD-Web-Dev-Python
Book-TDD-Web-Dev-Python copied to clipboard
ch11l032 - Typo in the test / issue with wait_for + truthiness
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 🙂