问题描述
# 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,基于评论)