如何检查下载文件的百分比

问题描述

我使用硒来获取报告。我编写了以下代码来检查是否收到报告。

    # switch to new tab
    driver.switch_to.window(driver.window_handles[-1])
    # navigate to chrome downloads
    driver.get('chrome://downloads')
    # define the endTime
    endTime = time.time()+20
    downloadPercentage = driver.execute_script(
                "return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('#progress').value")
    print(downloadPercentage)

但在最后一行我收到以下错误

selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property 'value' of null

解决方法

'#progress' 不是用 querySelector('#progress').value 获取其值的输入字段,您需要将其修改为 querySelector('#progress').getAttribute('value')

所以,修改

downloadPercentage = driver.execute_script(
                "return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('#progress').value")

e = driver.find_element_by_id('progress')
downloadPercentage = e.get_attribute("value")

(更新于 2021-02-01,基于评论)