当前位置:  开发笔记 > 编程语言 > 正文

尝试...除了在python和selenium中没有捕获NoSuchElementException

如何解决《尝试除了在python和selenium中没有捕获NoSuchElementException》经验,为你挑选了2个好方法。

我有以下代码:

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

我无法弄清楚为什么NoSuchElementException或者StaleElementReferenceException没有被抓住.



1> falsetru..:

A and B成为B如果两个AB是真值.所以NoSuchElementException and StaleElementReferenceException成为StaleElementReferenceException; 代码只捕获该异常.

>>> NoSuchElementException and StaleElementReferenceException

您需要用来except (NoSuchElementException, StaleElementReferenceException):捕获两个异常.



2> Mike Müller..:

改变这一行:

except NoSuchElementException and StaleElementReferenceException:

成:

except (NoSuchElementException, StaleElementReferenceException):

这就是原因:

>>> NoSuchElementException and StaleElementReferenceException
StaleElementReferenceException

and检查,如果NoSuchElementException是真的第一次.由于这种情况,它会检查是否StaleElementReferenceException为真.因为它也是真的,它返回这个类.

使用pylint,它会警告你:

Exception to catch is the result of a binary "and" operation (binary-op-exception)

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有