如何忽略特定异常并用自定义输出替换它在Python中

0 投票
1 回答
1111 浏览
提问于 2025-04-18 01:47

我有一个脚本,可以让我登录到一个网站。我需要不断点击一个“加载更多”的按钮,才能看到第一个讨论串。当我到达底部时,selenium会报错,因为“加载更多”按钮不再可用,说明已经到达了开始的位置。

还有其他一些错误我想看到,但对于这个特定的错误,我只想忽略它,并打印出“已到达初始讨论串”。我打算这样做:

class ReachedEndException(Exception):
        pass
try:
    do_somethong()
except ReachedEndException:
    print "Reached initial thread"

我这样做对吗?或者有什么更好的方法吗?

[编辑] 根据Konstantin的回答,这里有一个可用的例子。

try:
    while True:
        dr.find_element_by_xpath("//li[@class='more-pages']/a[1]").click()
        sleep(2)
    except NoSuchElementException:
        print "Reached Initial Thread."

取自Selenium文档

1 个回答

2

你走在正确的道路上。你只需要捕捉到正确的错误。记住,你可以捕捉到任何错误,不管是系统自带的、用户自己定义的,还是来自外部库的。你需要弄清楚Selenium抛出了什么错误,然后把它捕捉到。

撰写回答