Python Selenium如何点击表格中指定sectionheader行前的最后一个li元素
实现方案
核心定位逻辑
- 先定位class为
sectionheader且文本包含Used的tr元素 - 通过XPath的
preceding-sibling轴获取该tr的前一个相邻tr - 在该前序tr中匹配所有高亮状态的li元素,取最后一个执行点击

代码实现
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化驱动(此处以Chrome为例,可替换为对应浏览器驱动) driver = webdriver.Chrome() # 显式等待设置,超时时间10秒可自行调整 wait = WebDriverWait(driver, 10) # *下方代码中的高亮类名`active`请替换为你页面中实际标记高亮li的类名* target_li_xpath = """ //tr[contains(@class, 'sectionheader') and contains(normalize-space(text()), 'Used')] /preceding-sibling::tr[1] //li[contains(@class, 'active')][last()] """ # 等待元素可点击后执行点击 target_li = wait.until(EC.element_to_be_clickable((By.XPATH, target_li_xpath))) target_li.click()
补充说明
- 若页面中li的高亮状态是通过其他属性(比如
style属性的背景色设置)标记,只需修改XPath中li的匹配规则即可,例如高亮为红色背景时可改为//li[contains(@style, 'background: red')][last()] normalize-space(text())用于去除文本前后的空格、换行符,避免匹配失败
内容的提问来源于stack exchange,提问作者user9627263
相关产品推荐
相关产品推荐

