如果收到超时异常,如何重新启动脚本

时间:2019-05-18 11:17:41

标签: python selenium selenium-webdriver

使用此代码时,过一会儿就会出现超时异常。

driver = webdriver.Firefox()
driver.implicitly_wait(100)


def csv_url_reader(url_obj):
    reader = csv.DictReader(url_obj, delimiter=',')
    for line in reader:
        url = line["URL"]
        driver = webdriver.Firefox()
        driver.get(url)
        try:
            title = WebDriverWait(driver, 100).until(
                EC.presence_of_element_located((By.CLASS_NAME, "some class name with title"))
            ).text
        finally:
            driver.close()
            driver.quit()
        print("Title is " + title)


if __name__ == "__main__":
    with open("url.csv") as url_obj:
        csv_url_reader(url_obj)

CSV文件包含大约3000个链接,在处理了它们的百分之一之后,它会输出错误。如何解决这个错误?我可以从最后处理的链接重新启动脚本吗?

1 个答案:

答案 0 :(得分:1)

根据您在注释中提供的跟踪,此行引发异常:

title = WebDriverWait(driver, 100).until(
                EC.presence_of_element_located((By.CLASS_NAME, "some class name with title"))
            ).text

您可以在try块中找到它,但是try块中没有相应的except,因此...基本上没有发现错误。添加一个except块,它将起作用。