Try…except not catching NoSuchElementException in python and selenium
本问题已经有最佳答案,请猛点这里访问。
我有以下代码:
1 2 3 4 5 6 7 | def test_counter(self): try: if self.driver.find_element_by_id(self.counter).text == 'texttexttext': return True except NoSuchElementException and StaleElementReferenceException: self.fix_error() return False |
我不明白为什么没有抓到
如果
1 2 | >>> NoSuchElementException and StaleElementReferenceException <class 'selenium.common.exceptions.StaleElementReferenceException'> |
您需要使用
更改此行:
1 | except NoSuchElementException and StaleElementReferenceException: |
进入:
1 | except (NoSuchElementException, StaleElementReferenceException): |
这就是原因:
1 2 | >>> NoSuchElementException and StaleElementReferenceException StaleElementReferenceException |
使用pylint,它会警告您:
1 | Exception to catch is the result of a binary"and" operation (binary-op-exception) |