python - Selenium 花费太多时间来下载文件
问题描述
我正在使用我的这部分代码下载一些文件,这些文件是通过单击指定了部分文本的链接来下载的,但即使使用我driver.implicitly_wait(5)
的 ,驱动程序也需要 2 分钟以上的时间来检查和下载可用文件。
与下面的代码相同的最佳 pythonic 方式是什么?
重要的是,有时 4 个文件中只有一个或两个可供下载。
driver.find_element_by_xpath('//*[@id="menu"]/li[2]/a').click()
driver.find_element_by_xpath('//*[@id="linkbtconsultar"]/a[1]/span').click()
try:
driver.find_element_by_partial_link_text('ASD!').click()
except NoSuchElementException:
return
try:
driver.find_element_by_partial_link_text('QWE#').click()
except NoSuchElementException:
return
try:
driver.find_element_by_partial_link_text('RTY%').click()
except NoSuchElementException:
return
try:
driver.find_element_by_partial_link_text('ASD%').click()
except NoSuchElementException:
return
解决方案
我会将 4 个定位器合二为一,返回一组元素,然后单击每个定位器循环遍历该集合。
像这样的东西:
driver.find_element_by_xpath('//*[@id="menu"]/li[2]/a').click()
driver.find_element_by_xpath('//*[@id="linkbtconsultar"]/a[1]/span').click()
docs = driver.find_elements_by_xpath('//a[contains(.,'ASD!')] | //a[contains(.,'QWE#')] | //a[contains(.,'RTY%')] | //a[contains(.,'ASD%')]')
for doc in docs:
doc.click()
# you probably will need a brief wait here to give the browser time to process each click
此代码将尝试获取所有所需的文档并仅返回存在的文档......但它应该是即时的。
推荐阅读
- html - “formGroup 需要一个 FormGroup 实例。请传入一个。” 尝试显示表格时出错
- c - ~0x00 如何返回 -1?
- node.js - mikro-orm 使用 type-graphql 缓存数据
- angular - 页面刷新后js文件更改路径Angular
- node.js - 函数后跟更多参数?
- javascript - 如何在 Angular10 项目中使用 chart.js 在条形图上显示数据标签?
- wordpress - 以编程方式将表格标题添加到所有联系表格 7 表格?
- ios - React-Native 闪屏假
- html - 如何在 VS-Code IntelliSense 中查找和禁用提供相同补全的扩展?
- sql-server - 具有特定值的行的总和 T-SQL