Selenium Python通过partial link text定位xlsx链接元素失败求助
解决Selenium无法找到末尾含xlsx的链接元素问题
我来帮你搞定这个问题!你用driver.find_element_by_partial_link_text('xlsx')找不到元素的核心原因是:partial_link_text匹配的是链接标签<a>之间的可见文本内容,而不是href属性里的内容。从你提供的元素详情来看,这个链接的href里确实有.xlsx,但链接显示的文本(也就是<a>和</a>之间的内容)大概率不包含xlsx,所以这个方法自然找不到元素。
给你两个靠谱的替代方案:
方案1:使用XPATH匹配href属性以.xlsx结尾的元素
XPATH的ends-with方法可以精准匹配属性的结尾内容,代码如下:
# 新版Selenium(推荐写法) from selenium.webdriver.common.by import By driver.find_element(By.XPATH, "//a[ends-with(@href, '.xlsx')]").click() # 旧版Selenium兼容写法 driver.find_element_by_xpath("//a[ends-with(@href, '.xlsx')]").click()
方案2:使用CSS选择器匹配href属性以.xlsx结尾的元素
CSS选择器里的$=符号表示匹配属性值以指定字符串结尾,写法更简洁:
# 新版Selenium(推荐写法) from selenium.webdriver.common.by import By driver.find_element(By.CSS_SELECTOR, "a[href$='.xlsx']").click() # 旧版Selenium兼容写法 driver.find_element_by_css_selector("a[href$='.xlsx']").click()
如果页面上存在多个.xlsx链接,你可以改用find_elements_*方法获取元素列表,再根据需求选择对应的元素点击哦。
内容的提问来源于stack exchange,提问作者Yousuf
相关产品推荐
相关产品推荐

