【问题标题】:How to check the percentage of downloaded files如何检查下载文件的百分比
【发布时间】:2021-05-03 06:55:27
【问题描述】:

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

    # 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

【问题讨论】:

  • 你好。您能否检查是否需要像这样更改第一个查询部分: querySelector('downloads-manager') --> querySelector('#downloads-manager') 其他选择器在 id/name 部分前面有 #。

标签: javascript python selenium google-chrome download


【解决方案1】:

'#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 更新,基于评论)

【讨论】:

  • selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property 'getAttribute' of null
  • 根据评论更新
  • 我终于通过打开当前下载的文件列表并计算出来解决了。
  • 是的。但失败如下selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="progress"]"}
  • 我认为下载完成后可能会出现此错误。 Google,动态更改 DOM 内容。那么,这个错误是在下载过程中发生的,还是在完成之后发生的?
【解决方案2】:

我使用另一种解决方案。 下载开始后,我切换到 edge://download (chrome://download) 页面并开始定期解析(即每 3 秒一次),等待“取消”或“暂停”标题消失。 当这些词消失(实际上转换为“在文件夹中显示”)时,表示文件已下载。

【讨论】:

    猜你喜欢
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多