是的,可以将这两行代码只写一次。可以在第一次点击链接之前调用self.download_alert(),然后在每次重试之前不再重复调用。修改后的代码如下:

def download_with_retry(self, link, file_title, download_time_limit, file_size, path, urn):
    retry_count = 3
    while retry_count > 0:
        self.browser.click_with_link(link)
        if retry_count < 3:
            self.download_alert()  # 重试需要点击文件下载过大
        logger.info("\n >> 【urn = {}】文件名{}文件大小{},下载时间{}".format(urn, file_title, file_size, download_time_limit))
        status = self.download_file_is_successfully(path, file_title, file_size)
        if status:
            return True  # 下载成功
        else:
            time.sleep(download_time_limit)
            status = self.download_file_is_successfully(path, file_title, file_size)
            if status:
                logger.info("\n >> 【urn = {}】文件{}重试下载成功".format(urn, file_title))
                return True  # 重试成功
            else:
                logger.info("\n >> 【urn = {}】文件{}重试下载失败".format(urn, file_title))
                retry_count -= 1

    return False  # 重试次数用尽,下载失败

这样就避免了重复调用self.download_alert()的问题

def click_download_fileself urn path 点击下载按钮下载文件 downloaded_files_success = # 下载成功的文件列表 downloaded_files_failed = # 下载失败的文件列表 links = selfbrowsersafe_get_linkByCSS_SELEC

原文地址: https://www.cveoy.top/t/topic/iAtd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录