Python 如何向下滚动页面以避免下载文件时出错

Python 如何向下滚动页面以避免下载文件时出错,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,我有这个代码从URL下载几个文件。部分原因是它只下载页面中第一个可见的文件。 问题似乎是,当下载每个文件时,页面不会自动向下滚动 我收到这个错误: Element <a abc-id="0" href="#" class="todown" nc="0">Download</a> is not clickable at point (1474, 639). Other element would receive the click: <div id="footer

我有这个代码从URL下载几个文件。部分原因是它只下载页面中第一个可见的文件。 问题似乎是,当下载每个文件时,页面不会自动向下滚动

我收到这个错误:

Element <a abc-id="0" href="#" class="todown" nc="0">Download</a> 
is not clickable at point (1474, 639). Other element would receive 
the click: <div id="footer">...</div>

谢谢您的帮助。

我只需将
位置添加到视图中,这样相应的行就会滚动到视图中

for i in range(1,length_of_tr):
    ele = driver.find_element_by_xpath("//*[@id='dwn']/div/table[1]/tbody[1]/tr["+str(i)+"]/td[3]/a")
    ele.location_once_scrolled_into_view
    ele.click()

我只需将
location\u添加到\u视图中,这样相应的行就会滚动到视图中

for i in range(1,length_of_tr):
    ele = driver.find_element_by_xpath("//*[@id='dwn']/div/table[1]/tbody[1]/tr["+str(i)+"]/td[3]/a")
    ele.location_once_scrolled_into_view
    ele.click()

你可以试试这个:
driver.execute_脚本('window.scrollBy(0500)')
。它将沿y轴向下滚动500像素-axis@Artemiy嗨,阿特米。谢谢你的回答。添加您建议的内容将为每次下载向下滚动500像素?页面有点大,因为底部有500多个文件。@Artemiy谢谢。我尝试了你的建议,并向下滚动它的工作,但我需要测试几个不同的Y值,以使其工作。500太多,仍然50太多,脚本在几次下载后停止,因为滚动比下载快。Y=10或30不够,下载几次后脚本停止,因为下载速度比滚动快。Y=40时,它一直工作到最后。我询问是否有一种自动方式来设置此值或仅设置一个固定的Y值?您可以尝试以下方法:
driver.execute\u script('window.scrollBy(0500)')
。它将沿y轴向下滚动500像素-axis@Artemiy嗨,阿特米。谢谢你的回答。添加您建议的内容将为每次下载向下滚动500像素?页面有点大,因为底部有500多个文件。@Artemiy谢谢。我尝试了你的建议,并向下滚动它的工作,但我需要测试几个不同的Y值,以使其工作。500太多,仍然50太多,脚本在几次下载后停止,因为滚动比下载快。Y=10或30不够,下载几次后脚本停止,因为下载速度比滚动快。Y=40时,它一直工作到最后。我问是否有一个自动的方法来设置这个值,或者只设置一个固定的Y值?谢谢你的回答。我测试了你的代码,但我不确定为什么卷轴不能用这种方法工作。我测试了什么
Artemiy
,这样向下滚动它就可以工作了,但我需要测试Y的几个不同值才能工作。500太多,50太多,脚本在几次下载后停止,10,30不够,脚本在几次下载后停止。当Y=40时,它一直工作到最后。谢谢你的回答。我测试了你的代码,但我不确定为什么卷轴不能用这种方法工作。我测试了什么
Artemiy
,这样向下滚动它就可以工作了,但我需要测试Y的几个不同值才能工作。500太多,50太多,脚本在几次下载后停止,10,30不够,脚本在几次下载后停止。Y=40时,它一直工作到最后。