selenium 如何找到并点击一个excel文件,鉴于文件名的变化?

xdyibdwo  于 2023-02-19  发布在  其他
关注(0)|答案(2)|浏览(187)
<a id="hlExcel" href="Reports\DC_REG_638123088090882623.xls" target="_blank"><img src="Images/Excel.gif" alt="Click to view a Excel version"></a>

我如何找到并点击这个excel文件,我必须每天下载,鉴于文件名每天都在变化。我试过这个:-
链接=浏览器.按css选择器查找元素('["href ="报表"]')
link.click()
我正在使用python Selenium

vc9ivgsu

vc9ivgsu1#

也许你可以寻找部分匹配。DC_REG在所有文件名中是共同的吗?如果你知道一个模式,它将是文件名的一部分,而不管文件名更改了多少次,你可以寻找这个模式。类似于

link = browser.find_element_by_css_selector('a[href*="REG"][href$=".xls"]')

link.click()
f87krz0w

f87krz0w2#

给定HTML:

<a id="hlExcel" href="Reports\DC_REG_638123088090882623.xls" target="_blank">
    <img src="Images/Excel.gif" alt="Click to view a Excel version">
</a>

要单击***clickable***元素(即使文件名每天都在更改),理想情况下,您需要为element_to_be_clickable()引入WebDriverWait,并且可以使用以下locator strategies之一:

  • 使用 *CSS选择器 *:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#hlExcel > img[alt='Click to view a Excel version']"))).click()
  • 使用 XPATH
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='hlExcel']/img[@alt='Click to view a Excel version']"))).click()

*注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

相关问题