在python中循环并在try / except方法中检查逻辑

时间:2014-03-19 13:56:18

标签: python loops selenium logic

我不是python的专家,我不理解对我来说非常基本的东西。在这里:

我正在使用selenium获取网页,查找特定位置的链接(实际上是指向“下一页”的链接),如果链接存在,请单击它并从头开始。我的代码就是:

check = True
while check:

    #do something

    #check if there is a link to a "next page":

    try:
        nextPageLink=driver.find_element_by_xpath("//div[@class='pgLinks']/a[3]")

        nextPageLink.click()
        time.sleep(timeToCharge)
    except:
        check = False

此代码只运行一次。它找到了下一页的链接,它点击了它,但它没有再次运行循环,就好像它通过了除了的代码并将变量check置于False。

知道为什么会这样,我该怎么做呢?

谢谢

1 个答案:

答案 0 :(得分:3)

问题可能是你正在捕捉所有异常。有些东西可能会引发其他一行中的异常,并且会触发你的catch-all子句。

不要那样做。找出你期待的异常,并且只抓住它们。其他任何事情都是合法的错误,应该冒出来。